我正在关注这个网站教程:
http://progtutorials.tripod.com/COM.htm
初步证据:Visual Studio 2010,Windows 7 64 位。
我正在编写第 3 节中的示例。(实现服务器 DLL)。我已经完全按照所示输入了代码,并且在第 4.1 节中概述的代码的第 12 行执行此代码时出现“类未注册”异常(本教程向您展示了如何访问 DLL,我有遵循 3.1 至信):
hresult hr = CoGetClassObject(CLSID_Car, CLSCTX_SERVER, NULL, IID_IClassFactory, (void **) &pClassFactory);
我尝试运行:
regsvr32 xyz.dll
xyz.dll 是我的 dll 的路径,以便注册 DLL。这导致尝试查找 DLLRegisterServer 时出错:
我已经跑了
REGEDIT
HKEY_CLASSES_ROOT\CarDLL.Car\CLSID = {d969084c-b758-43ea-a218-a48763167abd}
HKEY_CLASSES_ROOT\CLSID\{d969084c-b758-43ea-a218-a48763167abd} = CarDLL.Car
HKEY_CLASSES_ROOT\CLSID\{d969084c-b758-43ea-a218-a48763167abd}\InProcServer32 = C:\Users\wiocl2\Documents\Visual Studio 2010\Projects\CarDLL\debug\CarDLL.dll
我假设将我需要的所有 GUIDS 都放在注册表中(GUIDS 是由我生成的)。
我假设需要将一个函数添加到允许它注册的类中,但我不知道如何执行此操作以及如何解决它。我有点迷茫,因为我已经很久没有使用 COM 了。如果有人可以在正确的方向上推动我,那将很有帮助。
编辑:哦,是的,我移动了#include // 包含 DEFINE_GUID 的定义
从 iid.cpp 到 iid.h 文件,否则我在构建时遇到未解决的外部错误。