读书人

com dll的DllGetClassObject函数怎么导

发布时间: 2012-06-12 14:21:25 作者: rapoo

com dll的DllGetClassObject函数如何导出啊?
我在学COM, 写了一个DLL COM组件示例,
注册用DllRegsiterServer(),注册成功的。
在测试组件时,在函数CoGetClassObject中,发生了一个错误 。
调试时,根据返回值找到的提示是:0x800401f9 DLL 中出错

我怀疑是我的组件的 DllGetClassObject 函数 没有被调用,把断点设在这个函数中,没有抓到。
这是我关于这个函数的声明,

C/C++ code
HRESULT __stdcall DllGetClassObject(const CLSID &clsid, const IID &iid, void **ppv)


问题是:这显然不是一个dllexport函数,可能com库函数查找它出错了。当我加上dllexport属性后,
C/C++ code
__declspec(dllexport) HRESULT __stdcall DllGetClassObject(const CLSID &clsid, const IID &iid, void **ppv)


编译时,提示重定义,与系统的冲突:
C/C++ code
STDAPI  DllGetClassObject(__in REFCLSID rclsid, __in REFIID riid, LPVOID FAR* ppv);




有谁知道,问题原因是这个吗?我应该怎么做,

[解决办法]
你用的是什么框架?MFC ?ATL ? 还是用Win32 自已实现的所有接口?

读书人网 >VC/MFC

热点推荐