C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[4974] Re:[긴급]이게 무슨 에러죠??
제라툴 [] 3539 읽음    2001-01-19 22:57
안녕하세요 제라툴입니다.
제가 알고 있는 지식이 얼마되지는 않지만
몇자 적어 봅니다.

우선 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();
를 호출하셔야 합니다..

제가 답변이 조금이라도 도움이 되셨으면 좋겠내영..


---- 아름다운 청년 제라툴 ----

+ -

관련 글 리스트
4962 [긴급]이게 무슨 에러죠?? 손님(긴급) 3186 2001/01/19
4974     Re:[긴급]이게 무슨 에러죠?? 제라툴 3539 2001/01/19
4978         Re:Re:[긴급]이게 무슨 에러죠?? 손님 2906 2001/01/20
4965     Re:[긴급]이게 무슨 에러죠?? 조재영 3490 2001/01/19
4968         Re:Re:[긴급]이게 무슨 에러죠?? 손님 2954 2001/01/19
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.