C++命名重整:QBE_NXZ QAE_NXZ
C++ naming mangling : QBE_NXZ QAE_NXZ
首先,这一切都是通过MS VS完成的。
程序崩溃"程序入口点?FunName@ClassName@@QAE_NXZ无法在动态链接库 XXX.dll 中找到"
我在依赖沃克中打开了XXX.dll,我能找到的只是
FunName@ClassName@@QBE_NXZ,不是FunName@ClassName@@QAE_NXZ。
我知道重建XXX.dll可以解决这个问题,但QBE_NXZ和QAE_NXZ有什么区别?
还有 c++ 名称重整是特定于编译器的吗?
您可以使用Visual Studio附带的undname.exe
实用程序来取消名称。在这种情况下:
C:>undname "?FunName@ClassName@@QAE_NXZ"
Undecoration of :- "?FunName@ClassName@@QAE_NXZ"
is :- "public: bool __thiscall ClassName::FunName(void)"
C:>undname "?FunName@ClassName@@QBE_NXZ"
Undecoration of :- "?FunName@ClassName@@QBE_NXZ"
is :- "public: bool __thiscall ClassName::FunName(void)const "
因此,如您所见,区别在于成员函数是否const
。
名称重整是特定于编译器的。对于 GCC,您可以使用 c++filt
程序来解开名称。
相关文章:
- 没有找到相关文章