Microsoft Visual Studio C ++名称Mangling计划中的文档在哪里? [英] Where is documentation on the Microsoft Visual Studio C++ Name Mangling Scheme?

查看:163
本文介绍了Microsoft Visual Studio C ++名称Mangling计划中的文档在哪里?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有兴趣查找官方或反向工程文档,详细说明Visual Studio C ++编译器使用的名称修改方案,将C ++名称转换为生成代码中的符号。

I am interested in finding either official or reverse engineered documentation detailing the name mangling scheme used by the Visual Studio C++ Compiler to translate C++ names into symbols in generated code.

我知道这可能会在版本之间发生变化,对Visual Studio 2003,2005和2008的细节最感兴趣。

I am aware that this may change between versions, and am most interested in the details for Visual Studio 2003, 2005 and 2008.

特别感兴趣的是处理C ++运营商,如新的,新增的,新的[]

Of special interest is the handling of C++ operators, such as new, placement new, and new[]

推荐答案

感谢参考,但我必须quibble - 它是幽默 - 关于严重和社区。当我写这些页面时,我应该非常希望能够认真努力,但页面仍然标注为研究如何继续的草图。可悲的是,在这个或任何其他话题上,没有任何社区支持认真努力学习别人的软件。

Thanks for the references, but I have to quibble - meaning it in good humour - about both "serious" and "community". When I wrote those pages, I should have liked very much to make a serious effort, but the pages remain marked just as sketches of how research might continue. Sadly, there is next to no community support for serious efforts at studying other people's software, for this or any other topic.

在日常实践中,程序员很少需要知道装饰的算法。为了找到一个特定的C ++名字的装饰,他们可以使用编译器。为了扭转特定的装饰,他们可以将其提供给CRT库函数 __ unDName 。这是毫无证据的,但是已经有很长很长的时间了。要使用它,这些天很容易,因为Visual Studio附带了一个 UNDNAME.EXE 工具

In everyday practice, programmers rarely need to know the algorithm for decoration. To find how a particular C++ name gets decorated, they can use the compiler. To reverse a particular decoration, they can feed it to the CRT Library function __unDName. That's admittedly undocumented, but it has been there a long, long time. To use it these days is easy because Visual Studio comes with an UNDNAME.EXE tool.

这篇关于Microsoft Visual Studio C ++名称Mangling计划中的文档在哪里?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆