C# WinForm에 ocx(x32/x64) 등록할 때 문제
·
기타
MFC ActiveX ocx를 C# Winform에 등록(도구 -> 도구 상자 항목 선택 -> COM 구성 요소)하려 할 때, ocx가 x32로 빌드한 결과라면 잘 붙지만, x64로 빌드한 ocx는 붙지 않음. (원인 : VS가 x32라서 그렇다고 한다.) 나는 MFC ActiveX를 통해 64비트 라이브러리를 붙여 C#에서 동작하게 하려는 게 목적이었기 때문에 x32 ocx만 쓸 수는 없는 상황이었다. 해결 방법으로는 x64 라이브러리를 우선 빌드에서 제외하여 x32의 ocx를 먼저 등록. 추후 다시 x64 라이브러리와 함께 ocx를 빌드하여 재 등록. 위 방법으로 x64로 빌드할 수 있었다.
선언되지 않은 식별자입니다.
·
기타
CInternetSession session(_T("session")); session.SetOption(INTERNET_OPTION_CONNECT_TIMEOUT, 3000); 위와 같이 코드를 작성하였을 때 분명 session을 선언, 정의 하였지만 빌드 시, error C2065: 'CInternetSession': 선언되지 않은 식별자입니다. error C2146: 구문 오류: ';'이(가) 'session' 식별자 앞에 없습니다. error C3861: 'session': 식별자를 찾을 수 없습니다. 오류를 던져버린다. 이유는 파일 상단에서 "pch.h" 보다 "afxinet.h" 헤더를 먼저 include 하였기 때문. 둘의 순서를 바꿔주면 해결된다. // #include "afxinet.h" ..
[Live555] Live555 build (Visual Studio 2017, Windows10)
·
기타
http://www.live555.com/ LIVE555.COM The UDP Multicast Tunneling Protocol A simple, low-overhead protocol for tunneling UDP multicast using UDP unicast (Here is an example of a 3rd-party service that uses UMTP.) Many Internet users currently cannot participate in wide-area IP multicast sessio www.live555.com 1. 위 링크 에서 LIVE555 Streaming Media 탭 선택 2. Source code -> here -> live555-latest.tar.gz(최..
[OpenCV] cv::VideoCapture RTSP open failed.
·
Computer Vision/OpenCV
왜 안열리지 한참 봤다. cv::VideoCapture cap(strRTSP); if (!cap.isOpened()) { AfxMessageBox(_T("RTSP open failed")); return; } RTSP는 열때 OpenCV 내부에서 ffmpeg 사용하여서, 실행 파일 경로에 "opencv_videoio_ffmpeg454_64.dll"이 빠져있으면 isOpened()가 false로 빠져버린다.... 끝.
[MFC] ntdll.dll error
·
언어 | Framework/MFC
프로젝트 진행 중 class에 bool형 멤버 변수를 추가하고 이를 생성자(or OnCreate)에서 초기화했더니 class 객체 생성 부분에서 중단점을 호출한다. 호출 스택을 보니 ntdll. 어쩌고 저쩌고에서 걸림. 왜 그런가 하고 한참을 찾았는데 결국 내 실수였다. 해당 class는 project/include 폴더에 있는 것을 참조했는데 프로젝트 속성에서 project/include를 참조한 것이 아니라, 이전 프로젝트였던 project_demo/include를 참조하고 있었던 것. 속성에서 제대로 연결해주니 정상 동작한다. ㅠㅠ
[MFC] OnPaint, OnDraw, 자식 클래스에서 부모 클래스 WM_PAINT Message 처리하기.
·
언어 | Framework/MFC
이미지를 뿌려주는 클래스를 작성 중 자식 클래스가 부모 클래스의 OnPaint를 호출해야 하는 경우가 생겼다. class A : CWnd { ... ... public: DECLARE_MESSAGE_MAP() afx_msg void OnPaint(); ... ... } A라는 클래스의 OnPaint에서 Wnd 영역에 그림을 그려주고 있다. 나는 A라는 클래스에 특정 기능을 추가해야 하는 상황이 생겨, A에 바로 추가하기보단 B라는 클래스를 만들어 A를 상속받고 기능을 추가시키고자 했다. class B : A { ... ... + 기능 추가 public: DECLARE_MESSAGE_MAP() afx_msg void OnPaint(); ... ... } B 클래스 객체를 만들어 사용했을 때는 B의 OnPa..
woongs_93
웅's blog