如何在VisualStudio汇编程序输出中调用名称? 使用VisualStudio 2010/2012,可以使用>Fas转换编译C++源文件,生成生成代码的程序集输出。但生成的asm文件包含所有符号的损坏形式

如何在VisualStudio汇编程序输出中调用名称? 使用VisualStudio 2010/2012,可以使用>Fas转换编译C++源文件,生成生成代码的程序集输出。但生成的asm文件包含所有符号的损坏形式,c++,visual-studio,visual-c++,assembly,name-mangling,C++,Visual Studio,Visual C++,Assembly,Name Mangling,是否有一种开关或其他智能方法可以让VisualStudio生成未混合的符号?我知道,可以通过 > NoNe.exe < />代码手动地输入ASM文件,但是一个开关将比定制的POST生成事件更方便。 < P>如果所有的符号都与外部“C”兼容,则您可以将所有代码封装在一个外部的“C”中的C++源文件中。块强制所有符号以未加密的C样式发出,而不是应用C++名字的缩写。 微软研究项目提供了工具链的挂钩,它可能允许直接操纵符号名称的形成方式,但不幸的是,它的上一次公开发布是针对VS 2008的,并且它似乎

是否有一种开关或其他智能方法可以让VisualStudio生成未混合的符号?我知道,可以通过<代码> > NoNe.exe < />代码手动地输入ASM文件,但是一个开关将比定制的POST生成事件更方便。

< P>如果所有的符号都与外部“C”兼容,则您可以将所有代码封装在一个外部的“C”中的C++源文件中。块强制所有符号以未加密的C样式发出,而不是应用C++名字的缩写。


微软研究项目提供了工具链的挂钩,它可能允许直接操纵符号名称的形成方式,但不幸的是,它的上一次公开发布是针对VS 2008的,并且它似乎没有被产品化以包含在VS 2010或VS 2012中。

不可能这样做,因为/FA输出的性质。FA输出有效的汇编代码。在微软x86程序集中,需要表达未被修改的C++函数的符号根本不是有效的标签名称。匿名名称空间也没有好的表示法


任何处理这些情况的输出都不能使用汇编程序进行编译。如果您制作了一个处理此类名称的汇编器,那么它需要知道要应用谁的名称损坏规则来组装它。这违背了输出程序集的主要目的(准确地查看正在发生的事情)。

不幸的是,我的许多符号与
外部“C”
不兼容。