windows制作动态链接库和使用二

动态库的另一种制作方法:

不使用_declspec(dllexport)关键字,使用.def文件

//exportFun.def 文件名随意
EXPORT
add @1              //格式  函数名 @编号 <NONAME> 函数名应该就是导出的含书名,PE工具看过能对上号。可以在getprocaddress里直接用这名字  
sub @2 NONAME
//myDll.cpp
int add(int a,int b)
{
return a+b;
}

int sub(int a,int b)
{
  return a-b;  
}
//入口函数,文件名随意xx.cpp
#include <Windows.h>

BOOL APIENTRY DllMain( HMODULE hModule,
                       DWORD  ul_reason_for_call,
                       LPVOID lpReserved
                     )
{
    switch (ul_reason_for_call)
    {//下边几个自由发挥
    case DLL_PROCESS_ATTACH:
    case DLL_THREAD_ATTACH:
    case DLL_THREAD_DETACH:
    case DLL_PROCESS_DETACH:
        break;
    }
    return TRUE;
}

使用方法有两种:

显式调用,只需要dll文件

隐式调用,需要dll和lib文件

posted @ 2020-01-19 19:35  AGB  阅读(161)  评论(0编辑  收藏  举报