我想了解此类错误的@@YAHXZ部分:


  错误LNK2019无法解析的外部符号“ int __cdecl func2(void)”
  (_func2 @@ YAHXZ)在函数_main中引用。


这只是一个例子,但我看过其他类型的奇怪字母,我现在不记得了。在哪里可以找到关于它们的解释?

最佳答案

这称为«name mangling»或«名称修饰»。

由于C ++支持函数重载,因此通常以参数的类型为基础,以特定方式生成符号的名称。

这是Microsoft网站上的官方文档:
https://msdn.microsoft.com/en-us/library/56h2zst2.aspx

编辑

Microsoft没有提供有关名称修饰的完整文档。
如果您有兴趣确切了解符号的含义,我建议阅读Agner Fog的有关调用约定的文档:
http://www.agner.org/optimize/calling_conventions.pdf

关于c++ - VS链接错误描述中的“@@ YAHXZ”是什么意思?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47641004/

10-13 06:14