3,248
社区成员
发帖
与我相关
我的任务
分享
void test()
{
CoInitialize(NULL);
CLSID clsid1, clsid2;
HRESULT hr1 =CLSIDFromProgID(OLESTR("妖怪"),&clsid1);
HRESULT hr2 =CLSIDFromProgID(OLESTR("自己"),&clsid2);
CComPtr<IUnknown> pUnk1, pUnk2;
hr1 = pUnk1.CoCreateInstance(clsid1);//pUnk1, pUnk2 两个可以获得正常值
hr2 = pUnk2.CoCreateInstance(clsid2);//说明两个 DLL可以正常加载
CComPtr<IMy01> p2; //自己的DLL,获取接口指针正常,
p2.CoCreateInstance(clsid2); //函数调用也正常
LONG r; p2->iAdd(7,2, &r);
CComPtr<IDxxx> p1; //妖怪DLL,OleView查看可以找到 IDxxx ,在*.tlh中可以找到 IDxxx,
p1.CoCreateInstance(clsid1); //按 . 后智能提示正常 ,
CComQIPtr<IDxxx> p11; // 实际运行时,两种指针类型都无法获取,p1 , p11 指针值始终为NULL,
p11.CoCreateInstance(clsid1);
CoUninitialize();
}