我用ATL做了一个simple object,然后自己加了另外两个接口,就是说这个组件总共三个接口。注册dll形式的组件后,在客户端调用,代码如下: CoInitialize(NULL) ;
IAdvertiseMyself* pIAdvertiseMyself = NULL ;
HRESULT hr = CoCreateInstance(CLSID_CalcPi,
NULL,
CLSCTX_INPROC_SERVER,
IID_IAdvertiseMyself,
(void**)&pIAdvertiseMyself) ;
if (SUCCEEDED(hr))
{
//trace("Succeeded getting IAdvertiseMyself.") ; pIAdvertiseMyself->ShowAd("1000"); // Use interface IAdvertiseMyself.
}CoCreateInstance()调用成功,然后调用接口的方法ShowAd("1000")时异常;
IAdvertiseMyself* pIAdvertiseMyself = NULL ;
HRESULT hr = CoCreateInstance(CLSID_CalcPi,
NULL,
CLSCTX_INPROC_SERVER,
IID_IAdvertiseMyself,
(void**)&pIAdvertiseMyself) ;
if (SUCCEEDED(hr))
{
//trace("Succeeded getting IAdvertiseMyself.") ; pIAdvertiseMyself->ShowAd("1000"); // Use interface IAdvertiseMyself.
}CoCreateInstance()调用成功,然后调用接口的方法ShowAd("1000")时异常;
int main()
{
return 0;
}通过,为什么会是这样呢?着可是dll程序啊!