WEB开发网
开发学院软件开发VC DLL(Dynamic Link Libraries)专题 阅读

DLL(Dynamic Link Libraries)专题

 2008-11-06 19:26:49 来源:WEB开发网   
核心提示: 它们均不改变输出函数名中的字符大小写,这和PASCAL调用约定不同,DLL(Dynamic Link Libraries)专题(9),PASCAL约定输出的函数名无任何修饰且全部大写,b、C++编译时函数名修饰约定规则:__stdcall调用约定:1、以"?"标识函数名

它们均不改变输出函数名中的字符大小写,这和PASCAL调用约定不同,PASCAL约定输出的函数名无任何修饰且全部大写。

b、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"。

上一页  4 5 6 7 8 9 10  下一页

Tags:DLL Dynamic Link

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接