본문 바로가기

놀기136

__DATE__ and __TIME__ 을 time_t로 변환하기 __DATE__ , __TIME__은 자주 쓰는 macro 중의 하나다. 프로그램의 로그 또는 빌드 날짜를 넣을 때 쓰기도 하고 아주 유용하다. 이 유용한 macro를 time_t로 변환해 볼까 하는 생각을 다들 해봤을 것 같다. 이번에 __DATE__, __TIME__을 쓰면서 값을 유지해야 할 일이 있었다. 같은 값을 여러 군데 넣어야 하는데 그냥 macro를 사용하면 차이가 나서 문제가 되는 상황이었다. 그렇다면 방법은 이 값을 저장해야 하는데 그냥 저장하는 것보다 time_t와 같은 형태로 저장하면 유용할 것 같다. 이럴 때 우리가 해야 할 일은 코딩이 아니라 검색 검색 검색. 당연히 많은 예제가 있고 입맛에 맞는 것을 고르면 된다. compile_time_to_system_time - Funct.. 2023. 9. 20.
QT에서 SendMessage() 사용하기 MFC를 사용하던 시절 SendMessage()를 자주 사용했다. 운영체제에서 보내주는 메시지를 받을 수 있고 다른 프로그램의 핸들을 얻어 메시지를 전달할 수도 있었다. MFC는 Windows를 만든 M$에서 만들었기에 친Windows 라고 할 수 있는데 QT에서도 SendMessage()를 사용하고 운영체제가 보내주는 메시지를 받을 수 있다. 앞서 올린 USB 저장장치 꺼내기에서도 사용한 QT의 nativeEvent()와 SendMessage()를 추후에 사용할 목적으로 따로 정리한다. 2023.09.05 - [놀기/Qt] - USB 저장장치 꺼내기 (How to eject an external drive or USB stick) USB 저장장치 꺼내기 (How to eject an external d.. 2023. 9. 9.
USB 저장 장치 제거하기 (How to eject an external drive or USB stick) USB 저장 장치에 파일을 복사하는 프로그램을 만드는데 이왕이면 꺼내기까지 기능까지 같이 넣으면 좋겠다는 생각이 들었다. 일반적인 프로그램에서 되니 OS에서 지원하는 API가 있다는 것이니 검색을 해보았다. https://www.codeproject.com/Articles/13839/How-to-Prepare-a-USB-Drive-for-Safe-Removal How to Prepare a USB Drive for Safe Removal Shows the link between a drive letter, its disk number, and the disk's device instance www.codeproject.com 구글에서 찾으면 많은 질문과 답변이 있는데 정리된 자료를 찾을 수 있었다. CM.. 2023. 9. 5.
[NVR 만들기] H.265 지원 H.264를 기본으로 보통 사용하지만 압축효율이 좋은 H.265도 많이 쓴다. 한정된 저장 공간 안에 많은 일 수의 영상을 저장하기 위해서는 당연히 압축 효율이 좋은 것이 최고다. LIVE555에서도 H.265 Transport Stream을 지원한다. bmNVR을 하면서 사용했던 testH264VideoToTransportStream와 동일한 형태의 testH265VideoToTransportStream가 sample program으로 포함되어 있다. 파일을 열어보면 라인 수도 동일하다. 차이점은 H264VideoStreamFramer를 쓰느냐 H265VideoStreamFramer를 쓰느냐의 차이다. H.264와 H.265는 NAL Type에서 달라 구분이 쉽다. 이 정보를 기반으로 어떤 Framer.. 2023. 9. 2.