BOOL WINAPI DllMain 函数是干嘛的 中间为什么加上 WINAPI 这是什么意思?
答案:2 悬赏:60 手机版
解决时间 2021-01-31 05:15
- 提问者网友:像風在裏
- 2021-01-30 15:41
BOOL WINAPI DllMain 函数是干嘛的 中间为什么加上 WINAPI 这是什么意思?
最佳答案
- 五星知识达人网友:一秋
- 2021-01-30 16:15
DllMain 是Dll 的入口函数,就像是控制台程序的入口函数Main,和Win32程序的入口函数WinMain一样,DllMain 函数是可选的,不是必须的。
至于WINAPI,我们可以在windef.h头文件中可以看到如下的定义:
#define WINAPI __stdcall
其实WINAPI是一个宏,使用WINAPI和使用__stdcall是一样的。
__stdcall 其实一种函数调用约定,它规定了函数的参数都是从右向左通过堆栈传递的。一般来讲,API函数的函数调用约定都是WINAPI(也就是__stdcall),如果不加的话,默认则是__cdecl(C语言的函数调用约定)。如果这里使用了C语言的函数调用约定,那么此DLL在vb中则不能调用,因为vb中的默认函数调用约定为__stdcall,所以一般情况下,都会使用__stdcall函数调用约定。
至于WINAPI,我们可以在windef.h头文件中可以看到如下的定义:
#define WINAPI __stdcall
其实WINAPI是一个宏,使用WINAPI和使用__stdcall是一样的。
__stdcall 其实一种函数调用约定,它规定了函数的参数都是从右向左通过堆栈传递的。一般来讲,API函数的函数调用约定都是WINAPI(也就是__stdcall),如果不加的话,默认则是__cdecl(C语言的函数调用约定)。如果这里使用了C语言的函数调用约定,那么此DLL在vb中则不能调用,因为vb中的默认函数调用约定为__stdcall,所以一般情况下,都会使用__stdcall函数调用约定。
全部回答
- 1楼网友:一把行者刀
- 2021-01-30 16:26
不明白啊 = =!
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯