MFC

OpenCV + Microsoft Web Browser ActiveX Control 사용시 에러

불량껌 2012. 10. 12. 12:03

OpenCV를 사용하는 프로그램에서


다이얼로그에 Web Browser ActiveX 콘트롤을 사용할때


빌드는 잘 되는데


실행시


occcont.cpp 945뭐시 에러창이 뜨고 개체를 사용할수 없다고 나오거나 여러가지 등등의 에러가 나올때


OpenCV를 빌드해보고 

별짓을 다해봤다.


출력창에 보면 OleInitialize returned scode = RPC_E_CHANGED_MODE ($80010106). 요런 메세지가 나와있다.


내용은 3rd party ActiveX Control사용할때 어플리케이션이 시작되지 않을때 뱉는 메세지란다.


해결방법은


cpp file에 다음과 같은 코드를 삽입하면 된다.


struct static_init
{
static_init() { CoUninitialize(); OleInitialize( 0 ); }
};

#pragma init_seg( user )
static_init sys_init;


cpp file은 app file을 말한다. 


단일문서로 생성한 프로그램의 경우 예를 들어 프로젝트 이름이 MyProject면 처음 생성되는 파일이 

MyProject.cpp

MyProjectDoc.cpp

MyProjectView.cpp

생성된다


그럼 app file은 MyProject.cpp를 말한다. (vs 6.0은 MyProjectApp.cpp일것이다?)ㅎ


암튼 요거 삽질 엄청 했음.