静态链接库与动态链接库的使用-自

静态链接库与动态链接库的使用

自用,有错误请多多斧正。

静态链接库

步骤:

  1. 生成静态链接库文件
  2. 头文件中声明,cpp中实现
  3. 将.lib,.h放入所需工程目录下
  4. 引用头文件,#pragma comment(lib,“xxx.lib”);工程–设置–链接–对象/库模块中添加lib

动态链接库

步骤:

1.创建动态链接库文件
	头文件中声明,cpp中实现 
	声明格式:extern "C" _declspec(dllexport) + 调用约定 返回类型 函数名 参数列表
		  调用约定可默认 _stdcall
		  例:extern "C" _declspec(dllexport) _stdcall int Calculate(int Na , int Nb)
  	函数名函数编号更改:
		使用.def文件
		EXPORTS
		ep1:函数名 @编号 
		ep2:函数名 @编号 NONAME(只是用编号,可以隐藏函数名)
2.使用
	定义函数指针
	typedef 返回值类型(调用约定* 名字)(类型, 类型);
	ep:typedef char(__stdcall* Calculate)(char, char);
	加载dll
	HINSTANCE hModule=LoadLibrary("DLLNAME.dll");
	获取调用函数
	ep:Calculate rcal = (Calculate)GetProAddress(hModule,"calculate");
	 	int refer = rcal(1 , 2);
	 结束
	 FreeLibrary(hMoudle);

对于动态库获取函数地址较麻烦,可以使用动态库的lib。

  1. 先将.lib和.dll放入工程根目录
  2. 将lib引入#pragma comment(lib,“xxx.lib”)
  3. 声明函数__declspec(dllimport)__stdcall char Calculate(char a ,char b );
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值