如何在Visual Studio汇编程序输出中解码名称?

Blo*_*ops 7 c++ assembly name-mangling visual-studio visual-c++

使用Visual Studio 2010/2012,可以使用/FAs开关编译c ++源文件,以生成生成的代码的程序集输出.但是生成的asm文件包含其错位形式的所有符号.

是否有开关或其他智能方法使Visual Studio生成未拼写的符号?我知道可以通过手动提供asm文件,undname.exe但是切换比自定义的后期构建事件更方便.

Jos*_*man 0

如果所有符号都与 extern "C" 兼容,那么您可以将 C++ 源文件中的所有代码包装在 extern "C" 块中,以强制所有符号以未损坏的 C 样式发出,而不是应用 C++ 名称损坏。

Microsoft Research 项目http://en.wikipedia.org/wiki/Phoenix_%28compiler_framework%29提供了工具链的挂钩,它可能允许直接操作符号名称的形成方式,但不幸的是,它的最后一次公开发布是针对 VS 2008 的它似乎还没有被产品化以包含在 VS 2010 或 VS 2012 中。