有没有dll内的函数未被执行完毕就释放了
1个回答
展开全部
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函数调用约定。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询