vs2008 ATL 마법사를 사용하여 COM dll을 만들었습니다. 새로운 인터페이스를 만들고 두 가지 방법을 구현했습니다. 기본 기능은 다른 응용 프로그램에서이 COM 구성 요소에 액세스하려는 마법사에 의해 처리됩니다.등록되지 않은 오류가 CoGetClassObject에서 반환되었습니다.
CoCreateInstance() 또는 CoGetClasObject()를 사용하면 클래스가 등록되지 않은 오류 (0x80040154)가 나타납니다. COM dll에서 구현할 항목이 누락 되었습니까? regsvr32를 사용하여 DLL을 등록하고 CLSID, IID, Typelib에 해당하는 항목을 레지스트리에 등록했습니다.
Client Code:
::CoInitializeEx(NULL, COINIT_MULTITHREADED);
ISampleCOM* pSampleCOM;
HRESULT hr = ::CoGetClassObject(CLSID_CSampleCOM,CLSCTX_LOCAL_SERVER,NULL,
IID_ISampleCOM, (void**)&pSampleCOM);
시간은 반환 (0x80040154) 어떤 도움이 예를 들어 32 비트 응용 프로그램을 위해, 당신은에서 COM 개체에 액세스하는 위치에 따라 달라집니다
CLSCTX_LOCAL_SERVER 대신 CLSCTX_ALL을 사용해 보셨습니까? –
이미이 오류 코드에 대한 * 수백 * 개의 질문이 있습니다. 적어도 기존 답변을 검토 한 다음 다시 돌아와서 왜 * none *이 문제에 적용되었는지 설명하십시오. –