cocreateinsatnce返回系统找不到COM中指定的文件

时间:2011-03-19 05:30:42

标签: com

 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();

在上面的代码中HR值是0X8007002(系统找不到指定的文件) 如何解决这个问题。

1 个答案:

答案 0 :(得分:0)

如果注册了传递给CoCreateInstance()的类ID的COM服务器,则会发生这种情况,但无论出于何种原因,都无法找到.dll文件或其中一个依赖项。你最好的选择是Process Monitor utility - 它会让你看到究竟缺少的文件。