【发布时间】:2010-09-18 23:34:46
【问题描述】:
我在 VS2005 中有一个 C++ 应用程序并导入一个 VB DLL。 IntelliSense 按预期向我显示了 DLL 中的所有符号,但它也再次显示所有(或几乎所有)符号,并带有下划线前缀(尽管其中没有 @s)。为什么是这样?下划线项目与普通项目有什么区别?
【问题讨论】:
我在 VS2005 中有一个 C++ 应用程序并导入一个 VB DLL。 IntelliSense 按预期向我显示了 DLL 中的所有符号,但它也再次显示所有(或几乎所有)符号,并带有下划线前缀(尽管其中没有 @s)。为什么是这样?下划线项目与普通项目有什么区别?
【问题讨论】:
在(某些)c# 编码标准中,下划线前缀表示私有变量,这可以解释它...是 VB 还是 VB.Net?
【讨论】:
符号是属性吗?如果是这样,这些可能只是支持属性的私有变量。
【讨论】:
假设您使用的是 VB6,前导下划线版本 _Klass 是 Vb 为类 Klass 生成的默认接口。这个网站有一个很好的解释: http://www.15seconds.com/issue/040721.htm
【讨论】:
查看这篇关于 Name Mangling 的 wiki 文章以深入了解:
【讨论】: