我正在尝试调试一些使用COM的代码,我是初学者。最后对IUnknown::Release的两次调用让我很担心。这些接口(interface)是使用DllGetClassObject和IClassFactory::CreateInstance创建的。我看到其他类似的代码没有调用IUnknown::Release-这是正确的吗?intOpenMixer_Win_DirectSound(px_mixer*Px,intindex){DSPROPERTY_DIRECTSOUNDDEVICE_DESCRIPTION_DATAdesc;HMODULEhDsound=INVALID_HANDLE_VA
首先,COM对我来说就像黑魔法。但是我需要在我正在处理的一个项目中使用COMdll。所以,我有一个正在开发的DLL,我需要一些在单独的COMDLL中可用的功能。当我查看带有Depends.exe的COMDLL时,我看到了DllGetClassObject()等方法和其他函数,但没有我感兴趣的函数。我可以访问COMDLL(遗留)源代码,但它一团糟,我宁愿使用二进制形式的COMDLL,就像一个不知道里面发生了什么的大黑盒子。那么,如何使用LoadLibrary从我的代码中调用COMDLL函数?可能吗?如果是,您能否举例说明如何操作?我正在为这个项目使用VisualStudio6。非常感谢!
我正在开发一个COMdll并尝试使用__declspec(dllexport)导出DllGetClassObject()方法。这是我的声明:extern"C"HRESULT__declspec(dllexport)__stdcallDllGetClassObject(REFCLSIDrclsid,REFIIDriid,void**ppv)但我一直收到这个错误:errorC2375:'DllGetClassObject':redefinition;differentlinkage所以我尝试检查所有出现的DllGetClassObject定义。从而在ObjBase.h中找到了如下内容。ST