Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
解纠缠C++;DLL函数名_C - Fatal编程技术网

解纠缠C++;DLL函数名

解纠缠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

我有一个dll,可导出3个函数:

.h文件 .c文件 我在VS2010中编译


我看到的函数名如下:
_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)"