48.编写DLL动态链接库__declspec(dllexport)、DllMain生成xxx.dll、xxx.lib和xxx.h、LoadLibrary、GetProcessAddress、Free

自己编写DLL动态链接库文件
入加函数和出口函数
int WINAPI DllMain(HINSTANCE hInstance,DWORD fdwReason,PVOID pReason)
fdwReason的几个case的情况:

#define DLL_PROCESS_ATTACH 1     //调用进程时
#define DLL_THREAD_ATTACH  2     //调用线程时
#define DLL_THREAD_DETACH  3    //释放线程时
#define DLL_PROCESS_DETACH 0   //释放进程时

需要把调用方式要说明,是用C调用方式还是CPP调用方式
#ifdef __cplusplus //C++方式调用,需要用C的方式
#define EXPORT extern “C” __declspec(dllexport)
#else
#define EXPORT __declspec(dllexport)
#endif
其中extern "C"是C调用函数的方式,保证这个函数使用C方法进行调用
__declspec(dllexport) 的解释
在 32 位编译器版本中,可以使用 __declspec(dllexport) 关键字从 DLL 导出数据、函数、类或类成员函数。
__declspec(dllexport) 将导出指令添加到对象文件

若要导出函数,__declspec(dllexport) 关键字必须出现在调用约定关键字的左边(如果指定了关键字)。例如:

__declspec(dllexport) void __cdecl Function1(void);
若要导出类中的所有公共数据成员和成员函数,关键字必须出现在类名的左边,如下所示:

c

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值