现在遇到这样的一个问题,用MFC生成一个OCX,并注册成功。在基于对话框的程序中,直接加载可以调用。现在想用以下方式调用:
#import "../mfcocx/Debug/mfcocx.ocx" named_guids, no_namespace
#include "Debug/mfcocx.tlh"
CComModule  _Module;
int _tmain(int argc, _TCHAR* argv[])
{
CoInitialize(0); HRESULT hr;
_Dmfcocx * pObj;
_Module.Init(NULL, (HINSTANCE)GetModuleHandle(NULL));
hr = CoCreateInstance(
CLSID_mfcocx,
       //__uuidof(DemoObject),//Com对象标识符
        0,//指向接口IUnknown指针
 CLSCTX_ALL,
        //CLSCTX_ALL,//运行可执行代码上下文
        //__uuidof(IDemoObject),//Com对象接口标识符
DIID__Dmfcocx,
        reinterpret_cast<void**>(&pObj)//用来接收指向Com对象接口地址指针变量 
        ); if (hr == S_OK )
{
MessageBox(NULL, "SUCCEEDED", "", 0); 
}
else
{
MessageBox(NULL, "ho nooo", "", 0);
} pObj->getTest();
getch();
return 0;
}CoCreateInstance没有问题,是不是说明COM对象创建成功啊,当运用pObj时,不论是调用方法或是属性,都出错,callmfcocx.exe ÖеĠ0x7c815dea ´¦Î´´¦ÀíµÄÒì³£: Microsoft C++ exception: _com_error @ 0x0012fcc0 ¡£不知道为什么啊~!