描述:
小弟建立了一个基于dialog的vc程序,在“stdafx.h”文件中加入如下代码:
#include ” MGPWorkspace_i.c”
#include ” MGPWorkspace.h”
即可以使用Igoworkspace接口。
在程序里加一个botton,函数为
void CTDlg::OnButton1()
{
// TODO: Add your control notification handler code here
CLSID clsid;
LPCLASSFACTORY pClf;
LPUNKNOWN pUnk;
IgoWorkspace* pWorkspace;
::CLSIDFromProgID(L"Workspace", &clsid);
::CoGetClassObject(clsid,CLSCTX_INPROC_SERVER,NULL,IID_IClassFactory,(void**)&pClf);
pClf->CreateInstance(NULL,IID_IUnknown,(void**)&pUnk);
pUnk->QueryInterface(IID_IgoWorkspace,(void**)&pWorkspace);
pWorkspace->AboutBox();//调用IgoWorkspace接口的成员函数
}
编译时候没报错,运行时出错。调试发现,pClf->CreateInstance(NULL,IID_IUnknown,(void**)&pUnk);这句出错,“...内存不能为read”,请各位大侠指点,急啊◎