社区
C++ 语言
帖子详情
为什么C++生成的Dll函数名带有@?
BruceJiang
2012-02-25 05:52:33
为什么C++生成的Dll函数名带有@?如“_AvisynthPluginInit2@4”后面是数字2加@还有个4,都是这样的?
怎么调用呢?声明的函数又不能带有@? 请大侠赐教,多谢!
...全文
635
7
打赏
收藏
为什么C++生成的Dll函数名带有@?
为什么C++生成的Dll函数名带有@?如“_AvisynthPluginInit2@4”后面是数字2加@还有个4,都是这样的? 怎么调用呢?声明的函数又不能带有@? 请大侠赐教,多谢!
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Wolf0403
2012-02-25
打赏
举报
回复
解释在这里。
http://en.wikipedia.org/wiki/Name_mangling#Standardised_name_mangling_in_C.2B.2B
RabbitLBJ
2012-02-25
打赏
举报
回复
那是编译器生成的名字,根据参数什么的不同来定义重载的不同版本名
c里面的函数就没有,直接是_funcname()
Lactoferrin
2012-02-25
打赏
举报
回复
那个是c风格的修饰名
c++代码中要这样extern"C"int __stdcall AvisynthPluginInit2(int);
JoeBlackzqq
2012-02-25
打赏
举报
回复
那是跟编译器有关的。因为C++允许重载,不改变下函数名的话,重载的函数名称都会是一样了。
taoyh2002
2012-02-25
打赏
举报
回复
_stdcall调用约定的函数会有@,后面的数字表示参数总共所占字节数,这是因为_stdcall函数需要被调用者清空堆栈,所以需要知道参数所占大小
_cedcl调用约定的函数没有@及后面的数字,因为_cedcl调用约定的函数由调用者清空堆栈
Lactoferrin
2012-02-25
打赏
举报
回复
修饰名
你这样声明就可调用
int __stdcall AvisynthPluginInit2(int);
Saleayas
2012-02-25
打赏
举报
回复
名字碾平。
DLL
函数
接口:使导出的
函数
接口,同时以“
函数
名
”和“_
函数
名
@数字”的形式出现
我主要想说,怎么让编译的
DLL
产生“
函数
名
”和“_
函数
名
@数字”这两种接口
函数
,然而这两种接口
函数
在内存中指向同一个地址。例如,
DLL
的导出
函数
可以为“add”和“_add@8”,然而代码中
函数
原型为“void add (int, ...
dll
导出
函数
符号含义
DLL
中导出类成员
函数
名
称...标识
函数
名
的开始,后跟
函数
名
; 2.
函数
名
后面以@@YA标识开始,后跟返回值和参数表; 3.当
函数
的返回值或者参数与
C++
类无关的时候,返回值和参数表以下列代号表示: B:const
dll
导出
函数
名
的那些事
经常使用VC6的Dependency查看
DLL
导出
函数
的
名
字,会发现有
DLL
导出
函数
的
名
字有时大不相同,导致不同的原因大多是和编译
DLL
时候指定
DLL
导出
函数
的界定符有关系。 V
C++
支持两种语言:即C/
C++
,这也是造成
DLL
导出
函数
...
c++
生成
DLL
文件,给c#项目调用
c++
生成
DLL
文件,给c#项目调用
c++
生成
DLL
文件新建
c++
项目配置包含目录,库目录,附加依赖项新建.cpp文件和.def文件
生成
解决方案,
生成
成功后记录
生成
的
dll
所在的位置c#调用
生成
的
DLL
文件采坑参考
c++
生成
DLL
文件 用...
Windows Qt 编译
c++
DLL
时,取消导出符号的 @ 标识
在编译
带有
__stdcall 调用约定的
C++
dLL
时,默认会在导出符号后面带上 @ 符号, 1. 如果Windows环境下使用Qt(mingw)开发,可在 .pro 文件中新增如下编译选项 windows{ QMAKE_LFLAGS += -Wl,--kill-at } 2...
C++ 语言
65,194
社区成员
250,524
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章