解纠缠C++;DLL函数名
我有一个dll,可导出3个函数: .h文件 .c文件 我在VS2010中编译解纠缠C++;DLL函数名,c,C,我有一个dll,可导出3个函数: .h文件 .c文件 我在VS2010中编译 我看到的函数名如下:_InitializeChangeNotify@0, _PasswordChangeNotify@12。如何将函数分解 _xxx@x这意味着这是stdcall调用约定。参数的@平均摘要大小(字节)后的数字。_xxx@x这意味着这是stdcall调用约定。参数的@mean summary size(字节)后的数字。在windows上看起来是“”等效值 我在电脑中的“C:\Program Files(x
我看到的函数名如下:
_InitializeChangeNotify@0, _PasswordChangeNotify@12
。如何将函数分解 _xxx@x这意味着这是stdcall调用约定。参数的@平均摘要大小(字节)后的数字。_xxx@x这意味着这是stdcall调用约定。参数的@mean summary size(字节)后的数字。在windows上看起来是“”等效值
我在电脑中的“C:\Program Files(x86)\Microsoft Visual Studio 10.0\VC\bin\undname.exe”下找到了它
从页面上
可以使用undname.exe将修饰名称转换为其未修饰形式。比如说,
C:\>undname ?func1@a@@AAEXH@Z
Microsoft (R) C++ Name Undecorator
Copyright (C) Microsoft Corporation 1981-2000. All rights reserved.Undecoration
of :- "?func1@a@@AAEXH@Z"
is :- "private: void __thiscall a::func1(int)"
看起来windows上的“”是等效的
我在电脑中的“C:\Program Files(x86)\Microsoft Visual Studio 10.0\VC\bin\undname.exe”下找到了它
从页面上
可以使用undname.exe将修饰名称转换为其未修饰形式。比如说,
C:\>undname ?func1@a@@AAEXH@Z
Microsoft (R) C++ Name Undecorator
Copyright (C) Microsoft Corporation 1981-2000. All rights reserved.Undecoration
of :- "?func1@a@@AAEXH@Z"
is :- "private: void __thiscall a::func1(int)"
我也遇到了这个问题,并通过指定def文件来解决它。
e、 g:
a、 定义:
出口
初始化更改通知
在项目设置中,将链接>>输入>>模块定义文件设置为a.def
重建。
HTH我也遇到了这个问题,并通过指定一个def文件来解决它。
e、 g:
a、 定义:
出口
初始化更改通知
在项目设置中,将链接>>输入>>模块定义文件设置为a.def
重建。
嗯,是C还是C++?您的标题是C++,但是您的描述和标记都是C.,更不用说C程序不太喜欢<代码>外“C”< /> >。为什么要取消函数名?如果你想要“干净”的名字,工具会期望这些名称,这样它们就可以在<代码> GETPro()/Cube中更容易地使用。然后我认为你需要一个<代码> DEF < /C>文件。嗯,是C还是C++?您的标题是C++,但是您的描述和标记都是C.,更不用说C程序不太喜欢<代码>外“C”< /> >。为什么要取消函数名?如果您想要“干净”的名称,那么这些名称将是工具所期望的,以便在GetProcAddress()
中更容易使用,那么我认为您需要一个.def
文件。
C:\>undname ?func1@a@@AAEXH@Z
Microsoft (R) C++ Name Undecorator
Copyright (C) Microsoft Corporation 1981-2000. All rights reserved.Undecoration
of :- "?func1@a@@AAEXH@Z"
is :- "private: void __thiscall a::func1(int)"