tlbexp.exe 更改方法名称的大小写

2024-04-12

我有一个相当奇怪的问题。 我正在将接口从 C# 库导出到 COM。 我已启用“使用 COM 注册”项目设置,因此它调用 tlbexp.exe 来创建类型库。

我们在方法名称上使用驼峰式大小写,我注意到导出的类型库将这些恰好与类名一致的方法更改为 Pascal 大小写...

e.g

interface IFoo
{
void randomClass()
}

class RandomClass
{
}

类型库中导出的 IFoo 定义了 IFoo->RandomClass() 而不是 IFoo->randomClass()

关于造成这种情况的原因以及如何阻止它有什么想法吗?


由于 COM 不区分大小写,因此“RandomClass”和“randomClass”在输出库的表中是相同的符号。 (这就是 .NET 指南推荐类名和方法使用 PascalCasing 的部分原因。)

被选择的将是编译器发出的第一个,从程序员的角度来看,这是相当不确定的!

您可以使用 tlbexp 来选择其中之一/names参数,但两种情况cannot共存于图书馆。

要使用 tlbexp 的名称文件,您只需创建一个包含标识符列表的文件,每行一个:

RandomClass
SomeOtherIdentifier

然后你这样称呼它:

tlbexp MyAssembly.dll /names=MyNames.txt

然后 tlbexp 将使用名称文件中定义的符号版本。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

tlbexp.exe 更改方法名称的大小写 的相关文章

  • ASP MVC4 - 通过视图模型传递列表以查看

    我有一个模型人物 其中包括出生日期等字段 我想将所有人的列表以及每个人的计算年龄传递给视图 因此 视图模型 public class vm PersonList public Person Person get set public int
  • 是否有与 SQL Server newsequentialid() 等效的 .NET

    我们使用 GUID 作为主键 您知道默认情况下它是集群的 将新行插入表中时 它将插入表中的随机页 因为 GUID 是随机的 这会对性能产生可衡量的影响 因为数据库始终会分割数据页 碎片 但我使用顺序 GUID 的主要原因是因为我希望将新行插
  • lambda 始终返回“1”

    有这样的代码 include
  • 仅使用 1 行 C++ 初始化 2d 向量

    我需要能够初始化一个 2D 向量 int同一条线我在其中创建它 更具体地说 我必须创建一个3x2大小 2D 向量并将其所有值设置为 0 仅使用1行代码 有没有一种方法可以在不使用 for 循环和几行代码的情况下完成此操作 尝试这个 std
  • clang-tidy - 忽略第三方标头代码

    我正在为我的项目使用 CMake 并且我想向项目引入 clang tidy 检查 我用于此目的CMAKE CXX CLANG TIDY and clang tidy用于检查设置的文件 我想在 CI 中使用警告作为错误来可靠地检查提交是否引入
  • 从 proc/pid/cmdline 解析命令行参数

    我正在尝试解析命令行参数另一个程序 这是一个模拟器 在我的程序中使用system 命令和模拟器的pid 不幸的是同时使用文件读取和cat 输出格式不正确 所以我无法真正获取数据 cat在命令行上显示删除了空格的文件内容 整个字符串粘在一起
  • 将文件扩展名与应用程序关联

    我编写了一个编辑特定文件类型的程序 我想为用户提供在启动时将我的应用程序设置为该文件类型的默认编辑器的选项 因为我不需要安装程序 我尝试编写一个可重用的方法 通过向 HKEY CLASSES ROOT 添加一个键来为我关联一个文件 最好在任
  • LockBits 性能关键代码

    我有一个方法需要尽可能快 它使用不安全的内存指针 这是我第一次尝试这种类型的编码 所以我知道它可能会更快
  • “上下文模式”的这种实现看起来不错吗? [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我有多个处理单元可能存在于一个数组中 每个处理单元都有自己的参数 我想使用以下方式传达每个处理单元的参数上下文模式在它被建议作为另一个问题的解答 ht
  • 如何为用户提供给定 boost::spirit 语法的自动完成建议?

    我正在使用 Boost Spirit 在我的 C GUI 应用程序中为非技术用户构建简单的 数据过滤器 语言 语言与纯英语非常相似 并且可以解析为 AST 我被要求使该过程尽可能对用户友好 因此我希望提供类似 CLang 的错误消息 无法识
  • 在 Winforms 中,PreviewKeyDown() 从未针对任何键触发

    我最初试图让我的程序获取箭头键 上 下 左 右 的输入 但发现在 KeyDown 中这些键从未出现过 后来我发现我可以通过进入 PreviewKeyDown 函数并设置来启用箭头键 e IsInputKey true 及其周围的任何条件和逻
  • invoke_result获取模板成员函数的返回类型

    如何获取模板成员函数的结果类型 下面的最小示例说明了该问题 include
  • 为什么这些双精度数的返回值为-1.#IND?

    I have double score cvMatchContourTrees CT1 CT2 CV CONTOUR TREES MATCH I1 0 0 cout lt
  • SoapHttpClientProtocol:以流而不是字符串的形式获取响应?

    我正在使用一种网络服务 它可以一次性输出大量数据 响应字符串可能约为 8MB 虽然在台式电脑上这不是问题 但嵌入式设备在处理 8MB 字符串对象时会发疯 我想知道是否有办法以流的形式获取响应 目前我正在使用如下方法 我尝试使用 POST 请
  • 有没有 C# 到 C 的转换工具? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我知道 C 与 NET Framework 不同 C 是一种符合 ECMA ECMA 334 和 ISO
  • C++ 中的 Ofstream 数组

    我想要在我的项目中使用 41 个输出文件来在其上写入文本 首先创建一个字符串数组list为了命名这些输出文件 然后我尝试定义一个 ofstream 对象数组并使用list命名它们 但我收到此错误 outfile cannot be used
  • 如何检查多个变量是否等于同一值?

    如何比较多个项目 例如 我希望检查所有变量 A B 和 C 是否都等于字符 X 或所有三个变量都等于 O 如果其中 2 个为 X 1 个为 O 则应返回 false I tried if A B C X A B C O Do whateve
  • 如果 foreach 是一个结构数组,它会复制每个元素吗?

    我有一个结构数组 做foreach运算符在迭代数组时复制每个元素 据我所理解foreach只是底层的语法糖转换为for 所以看来答案是否定的 但我很想得到一些确认 PS 看来应该有人已经问过了 但我无法轻易找到任何东西 因此 请以提供的参考
  • C 警告函数调用中缺少标记

    这是我的警告 Missing sentinel in function call 我怎样才能删除它 我正在使用 linux 和 gcc 编译器 看来您可能没有终止数组声明NULL 如果没有 null 您可能会遇到一些内存怪异 因为运行时将不
  • C# 泛型中的通配符等效项

    假设我有一个通用类 如下所示 public class GeneralPropertyMap

随机推荐

  • 学习 Ruby - 1.8 还是 1.9 版本?

    我已经学习 Python 一段时间了 但我想做的项目更适合 Ruby 例如 CSS 的 SAC API 在 Ruby 以及 C 和 Java 中可用 不管怎样 考虑到我将要构建 我现在应该学习哪个版本的 Rubyonly网络应用程序 感谢您
  • 检查下划线模板中未定义的变量

    我在模板中显示了libraryPrep对象的模式视图 如下所示 if isUndefined this libraryPreps this el html this template else this el html this templ
  • Python:对第一个 OOP 风格脚本的反馈/更正

    我想要一些关于我的第一个使用 OOP 风格的 Python 脚本的反馈 这是一个 Munin 插件 根据插件名称 dell fans dell temps 绘制平均风扇速度或平均机箱温度图表 大约一个小时前我提交了程序版本 https st
  • Minikube 无法在 Windows 11 家庭版和 Docker 桌面上启动

    我有 Windows 11 家庭版 不允许 Hyper V 只有专业版允许 安装了 WSL2 和 Docker Desktop 使用 Chocolatey 安装了 Minikube 但它拒绝启动 在 SO 上搜索 我在几篇文章中找到了这个建
  • 如何重载一些 Groovy 类型转换以避免 NumberFormatException 的 try/catch?

    我厌倦了封装每个调用asType with try catch块如 def b def c try c b as Integer catch NumberFormatException c null println c 相反 我想在我的代码
  • 每个用户/浏览器会话仅显示一次欢迎 div

    我只想为每个用户或会话显示一次欢迎 div 我知道有 Jquery 选项 由于我是jquery的新手 我自己无法解决这个问题 请帮忙 document ready function close welcome click function
  • 使用 Crypto Node.js 出现错误“数据对于密钥大小来说太大”

    我收到错误 Error error 0406C06E rsa routines RSA padding add PKCS1 type 1 data too large for key size 当我做 var crypto require
  • MySql 视图动态且高效吗?

    我正在创建一个表视图 该视图将突出显示满足特定条件的数据 例如 如果我有一个包含整数值的表 我希望我的视图显示值大于 100 的行 我知道如何通过在表上创建视图来实现此目的 但是该视图是动态的吗 我已经在 MySQL 中测试过了 这似乎是正
  • 如何在 Magento 中更改订单起始编号

    有没有办法在 Magento 中更改订单起始编号而不更改已有的订单号 我只想为所有新订单设置 170000xxxx Thanks Look in eav entity store并找到increment last id 更新此号码 确保en
  • 在 Windows 上使用 PHP 获取共享驱动器列表?

    我想显示连接到运行 Windows 的系统的共享驱动器列表 有这方面的教程吗 我在 PHP 中尝试过以下代码 echo
  • 在 Android 中向 TabActivity 添加意图

    我查了一些关于如何在android中构建TAB的在线教程 并看到了符合我要求的教程 我很高兴实施它并且效果很好 当我希望每个单独的选项卡推送到一个单独的活动时 问题就出现了 我无法开始并打算传递控制权 我只给出了关于如何制作选项卡的主要代码
  • 如何在 Android Studio 中使用不同的模拟器

    我在 Android Studio 中构建 qemu 模拟器时遇到问题 还有一些其他的 Android 模拟器 如何配置 Android Studio 使用不同的模拟器 我用的是leapdroid模拟器http www leapdroid
  • Java更改和移动非标准XML文件

    我正在使用第三方应用程序 并且想要更改其文件之一 该文件以 XML 格式存储 但文档类型无效 当我尝试读取 use a 时 它会出错 因为文档类型包含 file ReportWiz dtd 如图所示 带引号 我得到一个找不到文件的异常 有没
  • 如何用unicode文件名c++读取二进制文件?

    在我正在从事的项目中 我处理了相当多的字符串操作 字符串从二进制文件及其编码 可以是单字节或双字节 中读取 本质上 我将字符串值读取为vector
  • IntelliJ:“构建”>“重建项目”菜单项与 Maven 全新安装

    For a Maven https en wikipedia org wiki Apache Maven驱动的项目IntelliJ https en wikipedia org wiki IntelliJ IDEA2018年 我该选择什么时
  • 重写内部 UIViewController 方法,因为内部方法给我带来了错误

    重写 UIViewController 内部方法会产生什么后果 UIViewController viewDidMoveToWindow shouldAppearOrDisappear 给我带来了一些问题 它将我的框架调整为我不想要的值有时
  • 在 Spark 中获取上周一

    我正在使用 Spark 2 0 和 Python API 我有一个数据框 其中有一列类型为 DateType 我想在包含最近星期一的数据框中添加一列 我可以这样做 reg schema pyspark sql types StructTyp
  • Chrome 和溢出:隐藏的问题

    在我的 javascript 中我使用 jqueryanimate 自动滑动推文的功能 Code function movefeeds var element jQuery Feeds var position element positi
  • 如何使用 XMLHttpRequest 传递 php 会话

    我遇到的问题是 我正在通过 XMLHttpRequest 从已设置会话 cookie 的页面调用服务器上的 php 脚本 问题是我的页面调用的脚本为每次调用创建一个新的 session id 并且不使用现有的 session id 来存储我
  • tlbexp.exe 更改方法名称的大小写

    我有一个相当奇怪的问题 我正在将接口从 C 库导出到 COM 我已启用 使用 COM 注册 项目设置 因此它调用 tlbexp exe 来创建类型库 我们在方法名称上使用驼峰式大小写 我注意到导出的类型库将这些恰好与类名一致的方法更改为 P