BOOL WINAPI DllMain 函数是干嘛的 中间为什么加上 WINAPI 这是什么意思?
展开全部
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函明升数调用约定。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询