gpt4 book ai didi

C# Com 枚举和 VB6

转载 作者:行者123 更新时间:2023-11-30 17:16:12 25 4
gpt4 key购买 nike

您好,我创建了 C# Exe Com Server 并从 VB6 应用程序引用它。问题是所有枚举在 vb 应用程序中都以“奇怪的名称”公开:EnumName_EnumeItem,而从当时的 VB6 代码中引用为 EnumName.EnumItem。

无法修改 VB6 应用程序代码。想知道我看到我可以通过更改来自 tlb 的 idl 提取来更改此定义,但未能确切了解它是如何完成的,以及完成这项工作的工具是什么。

关于如何尽可能轻松地设置枚举有什么建议吗?

代码:

 public enum enResultCode : uint
{
enRCNone = 0x00000000,
enRCNotFound = 0x00000001,
enRCFoundOnServer = 0x00000002,
enRCFoundOnLocal = 0x00000003,
enRCDatabaseError = 0x00000004,
enRCAborted = 0xFFFFFFFF,
enRCServerError = 0xFFFFFFFE,
enRCLocalError = 0xFFFFFFFD
}

在 VB6 中显示为:

enter image description here

代替:

enResultCode.EnumItemName

最佳答案

我认为您是对的,唯一的方法是自己修改 IDL。我可以告诉你一些关于它是如何完成的......

  1. 运行 tlbexp.exe 从 C# 程序集创建 tlb。
  2. 您运行 oleview.exe 打开那个 tlb 并检查 IDL。您可以将该 IDL 保存到文件或复制/粘贴它。
  3. 您编辑 IDL 以赋予它所需的枚举项名称。
  4. 运行 midl.exe 以从修改后的 IDL 生成 tlb。

这应该够了。抱歉,我无法为您提供所有正确的命令行开关,但我现在不在 Windows 计算机上。

关于C# Com 枚举和 VB6,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7416720/

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