visual-studio-2015 - 迁移到 X64 后:CComPtr CoCreateInstance 失败,rc=0x80040154 类未注册
问题描述
迁移到 X64 后:CComPtr CoCreateInstance 失败,rc=0x80040154 类未注册
IDL 文件未更改
//import "objidl.idl";
//import "ICmConnection.idl";
//import "ICmNamedObject.idl";
//import "ipositio.idl";
//import "oaidl.idl";
//import "ocidl.idl";
import "objidl.idl";
import "ICmConnection.idl";
import "ICmNamedObject.idl";
import "ipositio.idl";
[
uuid (96c64c60-24f6-99d0-9f8c-0020af9099cc),
//uuid (E2123FC4-0D5D-4A8F-94BC-6582D9F84109),
object,
pointer_default(unique)
]
interface ICMTopologieDatabase : IUnknown /*IDispatch */{
HRESULT GetObjects ( [in] unsigned classID, [out] ICMPosition** devices );
HRESULT NewObject ( [in] unsigned classID, [out] ICmNamedObject** device );
HRESULT getNamedDevice2 ( [in] LPSTR name , [out] ICmNamedObject** device );
HRESULT InitializeClient();
}
当我在寡妇注册表中检查 uuid 96c64c60-24f6-99d0-9f8c-0020af9099cc 时,我添加了 MIDL 编译器选项 /env x64 /x64 for X64
,它根本没有找到。
当我检查 MIDL 编译器生成的文件时,我可以看到它可能不是正确的,切换到 X64
/* Compiler settings for D:\Home\Atiras\V77Ma_64Bit_Branch001\Src\Cm\NmsCmCommon\ITopolog.idl:
Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 8.00.0603
protocol : dce , ms_ext, c_ext, robust
error checks: none
VC __declspec() decoration level:
__declspec(uuid()), __declspec(selectany), __declspec(novtable)
DECLSPEC_UUID(), MIDL_INTERFACE()
*/
是否可以使用此 MIDL 编译器设置未创建任何注册表并且未注册类以及正确的开关是什么?
解决方案
推荐阅读
- php - 由于会话超时使用php登录时,如何将用户重定向到最后一个活动页面?
- json - 在相同的python代码中解析具有可变键值对的不同json文件
- r - 根据多个条件在数据框中插入行
- amazon-web-services - 如何在 AWS API Gateway 中传递“LastEvaluatedKey”?
- unreal-engine4 - 客户端中的 UE4 复制变量未反映在服务器上
- facebook - Facebook PSID/ASID 匹配
- spring - @EnableBinding @deprecated 自 3.1 起支持函数式编程模型
- python - 我们如何将 CSV 数据从 CPP 发送到 python 脚本
- python - 在 Python 中编写带参数的装饰器
- android - 是什么让代码中不同的权限请求位置改变了 android 应用程序的行为