|
안녕하세요 제라툴입니다.
제가 알고 있는 지식이 얼마되지는 않지만
몇자 적어 봅니다.
우선 CoInitialize()에 대해서 설명드리죠
OLE의 기반이 DDE에서 COM으로 바뀌어진 것은 다아는 사실입니다..
님께서 Excel을 사용하실때.. 바로 이 OLE라는 것을 사용하게 됩니다.
그래서 COM에있는 라이브러리들을 자연적으로 사용하게 되죠.
제생각에는 위 에러가 여기서 발생한것 같습니다.
즉 COM라이브러리를 로드하지 안았기 때문에 생긴 문제같군요..
CoInitialize는 바로 이 COM라이브러리를 로드해서..
클라이언트 측에서 OLE(DLL로 그성되므로 InProc Server임)에 접근할수있는
환경을 만들어 주는 역할을 합니다.
또 이와 반대로.. 라이브러리의 사용이 끝나면.. 만드시 라이브러리를 해제하셔야 합니다.
해제하는 함수는 바로.. CoUninitialize입니다.
제생각으로는 위의 문제를해결 하기 위해서는
Excel을 사용하시기 전에
아래와 같은 코드를 삽입해 보십시오..
HRESULT hr = CoInitialize(NULL);
if(FAILED(hr))
{
ShowMessage("라이브러리 초기화 실패");
}
또.....
프로그램을 종료하시기전에는 반드시
::CoUninitialize();
를 호출하셔야 합니다..
제가 답변이 조금이라도 도움이 되셨으면 좋겠내영..
---- 아름다운 청년 제라툴 ----
|