C++ 修饰名的格式探究
以下结果是由VS2010里面测试得出:
------------------------------------------------------------------
/*
函数名、类名、名称空间、@@、函数访问级别、调用约定、返回类型、参数类型、有无参数(@Z、XZ)
函数名: ?函数名
类名: @类名
名称空间:@名称空间名
函数访问级别:
純函数是Y,静态类方法public,protected,private依次是S,K,C
非静态类方法public,protected,private依次是QA,IA,AA
调用约定:__cdecl 是 A , __stdcall 是 G
对于返回类型与参数类型:
void,char,signed char,unsigned char,short,unsigned short,
int,unsigned int,long,unsigned long,float,double,long double,
long long,unsigned long
依次对应:X, D, C, E, F, G, H, I, J, K, M, N, O, _J, _K
有无参数:有参数@Z、无参数XZ
-------------------------------------------------------
int foo(void); ?foo@@YAHXZ
short foo(void); ?foo@@YAFXZ
short foo(int, int); ?foo@@YAFHH@Z
short __cdecl foo(int, int); ?foo@@YAFHH@Z
short __stdcall foo(int, int); ?foo@@YGFHH@Z
short __stdcall muyou::foo(int,int) ?foo@muyou@@YGFHH@Z
public: static short __stdcall muyou::a::foo(int,int) ?foo@a@muyou@@SGFHH@Z
protected: static short __stdcall muyou::a::foo(int,int) ?foo@a@muyou@@KGFHH@Z
private: static short __stdcall muyou::a::foo(int,int) ?foo@a@muyou@@CGFHH@Z
private: short __stdcall muyou::a::foo(int,int) ?foo@a@muyou@@AAGFHH@Z
protected: short __stdcall muyou::a::foo(int,int) ?foo@a@muyou@@IAGFHH@Z
public: short __stdcall muyou::a::foo(int,int) ?foo@a@muyou@@QAGFHH@Z
-------------------------------------------
void foo(); ?foo@@YAXXZ
void foo(void); ?foo@@YAXXZ
void foo(char); ?foo@@YAXD@Z
void foo(signed char); ?foo@@YAXC@Z
void foo(unsigned char); ?foo@@YAXE@Z
void foo(short); ?foo@@YAXF@Z
void foo(signed short); ?foo@@YAXF@Z
void foo(unsigned short); ?foo@@YAXG@Z
void foo(int); ?foo@@YAXH@Z
void foo(signed int); ?foo@@YAXH@Z
void foo(unsigned int); ?foo@@YAXI@Z
void foo(long); ?foo@@YAXJ@Z
void foo(signed long); ?foo@@YAXJ@Z
void foo(unsigned long); ?foo@@YAXK@Z
void foo(float); ?foo@@YAXM@Z
void foo(double); ?foo@@YAXN@Z
void foo(long double); ?foo@@YAXO@Z
void foo(long long); ?foo@@YAX_J@Z
void foo(signed long long);?foo@@YAX_J@Z
void foo(unsigned long long);?foo@@YAX_K@Z
*/
namespace muyou{
class a
{
public:
short __stdcall foo(int, int);
public:
void vf(){foo(1, 1);}
};
}
using muyou::a;
int main(void)
{
a oa;
oa.vf(); return 0;
}
C++ 修饰名的格式探究的更多相关文章
- 问题解决——warning C4503 超出修饰名的长度,名称被截断
========================声明============================ 本文原创,转载请注明作者和出处,并保证文章的完整性(包括本声明). 本文不定期修改完善,为 ...
- 转 sql 时间转换格式 convert(varchar(10),字段名,转换格式)
convert(varchar(10),字段名,转换格式) CONVERT(nvarchar(10),count_time,121)CONVERT为日期转换函数,一般就是在时间类型(datetime, ...
- (转)sql 时间转换格式 convert(varchar(10),字段名,转换格式)
convert(varchar(10),字段名,转换格式) CONVERT(nvarchar(10),count_time,121) CONVERT为日期转换函数,一般就是在时间类型(datetime ...
- 关于asp.net C# 导出Excel文件 打开Excel文件格式与扩展名指定格式不一致的解决办法
-----转载:http://blog.csdn.net/sgear/article/details/7663502 关于asp.net C# 导出Excel文件 打开Excel文件格式与扩展名指定格 ...
- Sybase datetime 时间转换格式 convert(varchar(10),字段名,转换格式)
convert(varchar(10),字段名,转换格式)sybase下convert函数第三个参数(时间格式)比如:1.select user_id,convert(varchar(10),dayt ...
- convert(varchar(10),字段名,转换格式
sql 时间转换格式 ) convert(varchar(10),字段名,转换格式) CONVERT(nvarchar(10),count_time,121)CONVERT为日期转换函数,一般就是在时 ...
- sql 时间转换格式 convert(varchar(10),字段名,转换格式)
convert(varchar(10),字段名,转换格式) CONVERT(nvarchar(10),count_time,121) CONVERT为日期转换函数,一般就是在时间类型(datetime ...
- vbs 之 解决打开Excel文件格式与扩展名指定格式不一致的问题
' Q:解决打开Excel文件格式与扩展名指定格式不一致的问题' A: 使用工作簿saveAs时,往往忽略掉它的第二个参数FileFormat,添加即可. 比如: set bookDiff = oEx ...
- Microsoft Excel软件打开文件出现文件的格式与文件扩展名指定格式不一致?
今天winform代码做一个datagridview数据导出功能,导出的excel文件的后缀是*.xls(Micorsoft Excel 2000), 而本机新建的excel文件的后缀是 *.xlsx ...
随机推荐
- Django博客功能实现—文章评论的显示
功能:在打开文章之后,能在文章下面是显示文章的评论,有父级评论.思路:在文章详情的视图里面,获取这个文章的全部评论,得到显示列表,然后用模板显示出来.步骤:一,在views.py的文章详情中获取评论: ...
- Iterator接口。集合输出
在集合中支持以下几种方式. iterator ListIterator foreach输出 emumeration输出. 集合输出的标准操作: 集合输出的时候必须形成以下的思路:只要碰到了集合输出的操 ...
- jQuery的一些常用的方法(转载)
操作元素的样式 主要包括以下几种方式: $("#msg").css("background"); //返回元素的背景颜色 $("#msg") ...
- NDK开发之一
2015.07.22 Wiki_Tree: --NDK开发: --NDK特征: --MK文件编写规则: NDK开发: Ndk-build编译时会生成的两个同名的so库,位于不同的目录/project ...
- 2.1 python使用MongoDB 示例代码
import pymongo client = pymongo.MongoClient('localhost', 27017) # MongoDB 客户端 walden = client['walde ...
- HMAC加密的消息摘要码
HMAC(Hash Message Authentication Code)哈希消息授权码,它在消息摘要算法(例如MD5,SHA系列算法)的基础上,使用密钥对消息摘要进行加密.它相当于一个马甲,内里可 ...
- 76 mkswaP-用于设置交换区
Linux mkswap命令用于设置交换区(swap area). mkswap可将磁盘分区或文件设为Linux的交换区. 语法 mkswap [-cf][-v0][-v1][设备名称或文件][交换区 ...
- css 补漏
1.box-sizing: width(宽) + padding(内边距) + border(边框) = 元素实际宽度 height(高) + padding(内边距) + border(边框) ...
- qingku
# -*- coding:utf-8 -*- list1=[] list2=[] list3 = [] list4 = [] while True: inputs = raw_input(" ...
- Jquery 关于span标签的取值赋值用法
span是最简单的容器,可以当作一个形式标签,其取值赋值方法有别于一般的页面元素. //赋值 $("#spanid").html(value) //取值 $("#span ...