vs2012在已有项目上生成和使用dll动态链接库

假设有两个c++项目A、B,并且都定义了很多的子函数,这些子函数之间调用关系复杂,如果B需要通过使用DLL库的方式调用A中的一个子函数(或者多个),怎么办?

假设A中定义了很多的子函数,其中有一个子函数add,其函数声明所在头文件和函数定义所在源文件分别为:

add.h

int add(int &a,int &b);

add.cpp

#include "add.h"

int add(int &a, int &b){
	return a+b;
}

那么项目B通过使用DLL库的方式调用子函数add的解决步骤如下:

1. 将项目A的配置类型改为动态库(.dll)


2. 在函数声明前添加 extern "C" __declspec(dllexport) 修饰符,函数定义不变

add.h

extern "C" __declspec(dllexport) int add(int &a,int &b);
3. “生成”->“重新生成解决方案”,然后输出窗口将出现成功生成.lib和.dll的提示信息


4. 在项目A的Debug目录下可看到.lib和.dll文件,然后将它们拷贝到项目B的Debug目录下


5. 在项目B中新建函数声明的头文件,并在该头文件中指定导出库.lib的路径

add.h

#pragma comment(lib,"E:\\User2\\VS项目代码\\test\\Debug\\test.lib")
extern "C" __declspec(dllexport) int add(int &a,int &b);
大功告成,在项目B中即可调用函数add了!同时,别忘了还原项目A的配置哦,怎么改过来的就怎么改回去。
  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值