gpt4 book ai didi

com - 从托管 C++ (C++/CLI) 生成 COM 可见程序集

转载 作者:行者123 更新时间:2023-12-04 15:04:26 24 4
gpt4 key购买 nike

我需要开发一些可以从 VB6 使用 Managed C++ (C++/CLI) 调用的类。

我首先用 C# 开发了一个示例,我可以毫无问题地通过 COM 使用程序集
只需使用设置“注册 COM 互操作”和“使程序集 COM 可见”(并使用属性 [ClassInterface(ClassInterfaceType.AutoDual)] 使方法在 VB6 中可用。

之后,我尝试将示例转换为 C++/CLI,但没有成功。我用 [ClassInterface(ClassInterfaceType.AutoDual)] 属性创建了相同的类。我已经设置了“嵌入式 IDL”设置来指定输出 TLB,但 TLB 不是自动生成的。如果我在生成的 DLL 上使用 tlbexp 实用程序,我会得到一个可以在 VB6 中导入的 tlb,但是当我尝试创建一个实例时,我得到一个“ActiveX 组件无法创建对象 (429)”

我还需要对项目做什么才能让它运行?

提前致谢。

最佳答案

没什么可做的,但您从未提到过注册程序集。 C++ IDE 没有“注册 COM 互操作”选项。从 Visual Studio 命令提示符,在程序集上运行 Regasm.exe 以注册它。如果不将程序集放入 GAC,则需要/codebase 选项。并且/tlb 选项会生成类型库,从而不需要 tlbexp.exe。

关于com - 从托管 C++ (C++/CLI) 生成 COM 可见程序集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4053589/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com