我是COM dll的新手。我有dll和.tld文件和文档,它描述了dll公开的方法,classId。我尝试使用VS 2008独立项目跟踪程序,并能够初始化并成功调用方法。但是当我放入MFC ActiveX控件项目(在特定按钮上单击)时,下面的代码,它不工作和崩溃。调试时发现m_pInterface在“comip.h - Native C ++编译器COM支持 - COM接口指针头”中为空。
有人可以告诉我为什么吗?我需要在以下代码中添加/修改以便从MFC ActiveX项目调用。
HRESULT hResult = CoInitialize(NULL);
CLSID ClassID;
if(SUCCEEDED(CLSIDFromProgID(OLESTR("WorldClass.AssetManager.1"), &ClassID)))
{
IDispatch *pDispatch;
if(SUCCEEDED(CoCreateInstance(ClassID, NULL, CLSCTX_INPROC_SERVER,
IID_IDispatch, (void **)&pDispatch)))
{
//call dll methods here
}
}
CoUnInitialize();