【C++】编写动态链接库(DLL) __stdcall_【wjxgzz的博客】
来源:百度文库 编辑:神马文学网 时间:2024/04/29 07:47:16
刚有人在问我,C++怎么写动态库易语言调用..
动态库 有一个叫DLLMAIN的入口函数.[ WINMAIN 相似 ] 原型如下:
BOOL APIENTRY DllMain (HINSTANCE hInst,DWORD reason,LPVOID reserved);
动手开工...
extern "C" __declspec(dllexport) int Add(int n1,int n2)如此写的话 在易语言中只能使用LoadLibrary GetProcAddress等系列函数进行调用..那有什么办法可以像API那么调用呢?.我们需要一个def模块文件.
内容的编写很简单.
LIBRARY "库名.dll"
EXPORTS
Add
//导出函数列表
命令行编译: cl /EHsc /LD CPP源文件 /DEF DEF模块文件
查看一下导出表 嘎嘎..任务完成! 看实例你就会明白的!
附实例:
//test.cpp
#include
#include
BOOL APIENTRY DllMain (HINSTANCE hInst,DWORD reason,LPVOID reserved)
{
switch(reason)
{
case DLL_PROCESS_ATTACH: //DLL进程加载的时候执行事件
break;
case DLL_PROCESS_DETACH: //DLL进程卸载的时候执行事件
break;
case DLL_THREAD_ATTACH: //DLL线程加载的时候执行事件
break;
case DLL_THREAD_DETACH: //DLL线程卸载的时候执行事件
break;
}
return TRUE;
}
int __stdcall Add(int n1,int n2)
{
return n1+n2;
}
//DEF文件
LIBRARY "test.dll"EXPORTS
Add