C++ 编写的DLL导出的函数名乱码含义解析
C++编译时函数名修饰约定规则:
__stdcall调用约定:
1、以"?"标识函数名的开始,后跟函数名;
2、函数名后面以"@@YG"标识参数表的开始,后跟参数表;
3、参数表以代号表示:
X--void
D--char
E--unsigned char
F--short
H--int
I--unsigned int
J--long
K--unsigned long
M--float
N--double
_N--bool
....
PA--表示指针,后面的代号表明指针类型,如果相同类型的指针连续出现,以"0"代替,一个"0"代表一次重复;
4、参数表的第一项为该函数的返回值类型,其后依次为参数的数据类型,指针标识在其所指数据类型前;
5、参数表后以"@Z"标识整个名字的结束,如果该函数无参数,则以"Z"标识结束。
其格式为 "?functionname@@YG*****@Z"或"?functionname@@YG*XZ",
例如 :
int Test1(char *var1, unsigned long)-----?Test1@@YGHPADK@Z
void Test2()-----"?Test2@@YGXXZ"
__cdecl调用约定:
规则同上面的_stdcall调用约定,只是参数表的开始标识由上面的"@@YG"变为"@@YA"。
__fastcall调用约定:
规则同上面的_stdcall调用约定,只是参数表的开始标识由上面的"@@YG"变为"@@YI"。
如果要用DEF文件输出一个"C++"类,则把要输出的数据和成员的修饰名都写入.def模块定义文件
转载于:https://www.cnblogs.com/xingboy/p/11161680.html
C++ 编写的DLL导出的函数名乱码含义解析相关推荐
- C++ 动态库导出函数名“乱码”及解决
刚接触C++,在尝试从 dll 中导出函数时,发现导出的函数名都"乱码"了. 导出过程如下: 新建一个Win32项目: 新建的解决方案里有几个导出的示例: // 下列 ifdef ...
- C++ 动态库导出函数名乱码及解决
刚接触C++,在尝试从 dll 中导出函数时,发现导出的函数名都"乱码"了. 导出过程如下: 新建一个Win32项目: 新建的解决方案里有几个导出的示例: // 下列 ifdef ...
- python不允许使用关键字作为变量名、允许使用内置函数_【判断题】Python不允许使用关键字作为变量名,但是允许使用内置函数名作为变量名,不过这会改变函数名的含义,所以不建议这样做...
[判断题]Python不允许使用关键字作为变量名,但是允许使用内置函数名作为变量名,不过这会改变函数名的含义,所以不建议这样做 更多相关问题 [单选,A2型题,A1/A2型题] <十四经发挥&g ...
- python不允许使用关键字作为变量名、允许使用内置函数_Python不允许使用关键字作为变量名,允许使用内置函数名作为变量名,但这会改变函数名的含义。...
Python不允许使用关键字作为变量名,允许使用内置函数名作为变量名,但这会改变函数名的含义. 答:对 对于检查出的无效MAC帧,以太网负责重传. 答:× 哪一年开始中国成为世界第二大经济体? 答:2 ...
- python变量说法_Python不允许使用关键字作为变量名,允许使用内置函数名作为变量名,但这会改变函数名的含义...
根据材料,下列表述不正确的是().A.2003年一2009年,H省农民人均纯收入增加最多的是2008年B.2008 云南西双版纳有"植物王国""动物王国"的称誉 ...
- python可以用保留字作为函数的名字吗_Python不允许使用关键字作为变量名,允许使用内置函数名作为变量名,但这会改变函数名的含义...
[多选题]报表系统中报表公式主要有( ) [多选题]建立账套完成之后,( )不能修改. [单选题]心房颤动的特征性心电图表现是 [单选题]UFO 报表的数据处理能够完成以下哪些任务? [单选题]具有改 ...
- MFC DLL 导出函数的定义方式
一直在鼓捣DLL,每天的工作都是调试一个一个的DLL,往DLL里面添加自己的代码,但是对于DLL一直不太了解啊!今天一查资料,才发现自己对于DLL编写的一些基本知识也不了解.要学习,这篇文章先总结DL ...
- C# 遍历DLL导出函数
C#如何去遍历一个由C++或E语言编写的本地DLL导出函数呢 不过在这里我建议对PE一无所知的人 你或许应先补补这方面的知识,我不知道为什么PE方面的 应用在C#中怎么这么少,我查阅过相关 C#的知识 ...
- C#调用dll中的函数
C#调用dll中的函数 文章分类:操作系统 文章来源:http://blog.csdn.net/strmagic/archive/2007/11/02/1863462.aspx 大家在实际工作学习C# ...
最新文章
- BIND9配置文件详解模板
- ETSI MEC — 容灾组网模型
- JAVA代码如何实现删除文件夹6_java文件创建、删除、读取、写入操作大全
- 网络编程学习笔记(UDP的connect函数)
- Django ORM 级联删除
- ZABBIX3.0配置邮件报警
- 学习笔记Hadoop(七)—— Hadoop集群的安装与部署(4)—— 配置Hadoop集群
- MFC与Matlab编程总结 (以《Matlab与C/C++混合编程技术(第三版)》-刘维 第五章 生成DLL为例)
- 7个你可能不认识的CSS单位
- CSharpGL(29)初步封装Texture和Framebuffer
- 产品要不要做先回答的10个问题
- Maven - 基础入门与安装配置
- MIUI11新版本推送,小米10 Pro跑分轻松突破60万
- java tcp socket 关闭_JAVA SOCKET和TCP四次挥手
- pta 7-5 病毒变种 C语言
- 方维团购V3.07版本短信插件开发
- 使用python lxml库中的xpath、etree爬取网页超链接
- 图片拉伸:拉伸两边,保持中间不动
- 全栈开发实战|​名片管理系统的设计与实现(SSM + JSP)
- linux下 部署调用SAP接口