cocreateinsatnce返回系统找不到COM中指定的文件
在上述代码中,HR值为0X8007002(系统找不到指定的文件)cocreateinsatnce返回系统找不到COM中指定的文件,com,Com,在上述代码中,HR值为0X8007002(系统找不到指定的文件) 如何解决此问题。如果注册了传递到CoCreateInstance()中的类id的COM服务器,但由于任何原因找不到.dll文件或其依赖项,则会发生这种情况。您最好的选择是-它将让您看到丢失的文件。我创建了一个示例,上面显示了它的工作原理。。但是当我将它集成到COM DLL项目中时。它不起作用。。仅供参考。。如果我将上下文更改为CLSCTX_INPROC_SERVER为CLSCTX_ALL。cocreateinstance将返回“未
如何解决此问题。如果注册了传递到
CoCreateInstance()
中的类id的COM服务器,但由于任何原因找不到.dll文件或其依赖项,则会发生这种情况。您最好的选择是-它将让您看到丢失的文件。我创建了一个示例,上面显示了它的工作原理。。但是当我将它集成到COM DLL项目中时。它不起作用。。仅供参考。。如果我将上下文更改为CLSCTX_INPROC_SERVER为CLSCTX_ALL。cocreateinstance将返回“未注册的类”。@Mahantesh:Process Monitor将比猜测更有帮助。
CoInitialize(NULL);
GCalender::IGCalenderSync* pGCalender;
HRESULT hr = CoCreateInstance(__uuidof(GCalender::GCalenderSyncHelper),NULL,
CLSCTX_INPROC_SERVER,__uuidof(GCalender::IGCalenderSync),(void**)&pGCalender);
GCalender::GenericEvent HUGEP *pDeletedEvents;
GCalender::GenericEvent HUGEP *pUpdatedEvents;
GCalender::GenericEvent HUGEP *pNewEvents;
SAFEARRAY* deletedEvents, *updatedEvents, *newEvents;
pGCalender->GetAllEvents(&deletedEvents, &updatedEvents, &newEvents);
hr = SafeArrayAccessData(newEvents, (void HUGEP* FAR*)&pNewEvents);
SafeArrayUnaccessData(newEvents);
hr = SafeArrayAccessData(deletedEvents, (void HUGEP* FAR*)&pDeletedEvents);
SafeArrayUnaccessData(deletedEvents);
hr = SafeArrayAccessData(updatedEvents, (void HUGEP* FAR*)&pUpdatedEvents);
SafeArrayUnaccessData(updatedEvents);
CoUninitialize();