VS 用C++创建一个动态库调用

最近需要使用一个动态库调用,现在在这里把基础和踩的坑总结一下

  1. VS2015 与Blend for VS2015没有分清,导致新装的VC++库第二次打开就没有了,又对程序卸了装,装了卸载,出现的现象是VS刚安装好,然后打开启动发现里面VS C++的库都是全的,的但是关闭后在打开就是不全的了。。。其实打开错了,打开的是Blend VS2015。 emm…
  2. 用VS2015创建一个新项目,选择Win32项目
    在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述将要用的头文件可以都放在创建这个头文件中,而在源文件中,只需要引用这一个头文件即可
extern "C" _declspec(dllexport) int add(int a, int b);

这行代码是函数的调出,因为我们做的是一个动态库,需要调出函数,这行代码就是定义调出函数的,我们以add()函数为例。
源文件cpp中的代码如下:

#include "client.h"
int add(int a,int b) {
	return a+b;
}

这是已经添加好头文件与源文件的界面,在之前是没有添加Source.def的,发现生不成lib文件,于是上网查询生成lib的方法,就是在工程上右键,然后添加,点代码就可以创建定义文件,有了定义文件后不用加东西,直接Ctrl+F7编译,Ctrl+F5生成这五个文件,这五个文件可能不在一个文件夹下面,以下是我拖到一起的,lib文件我们可以给他加个名字,我的其中三个文件在debug下,而lib与exp文件在另外的目录下
在这里插入图片描述
到这里,动态库的创建到成功了,下面开始调用

调用需要重新创建一个工程,与上面相似而又不同,我们需要创建一个Win32控制台应用程序,一直默认直至到:
在这里插入图片描述在这里插入图片描述头文件与源文件如上图所示
头文件源码:

#pragma once
#include "targetver.h"
#include <stdio.h>
#include <tchar.h>
extern "C" _declspec (dllimport) int add(int a, int b);//表示导入函数

源cpp代码:

#include "stdafx.h"
using namespace std;
int main()
{
	int c = add(1,2);
	printf("%d\n",c);
    return 0;
}

然后Ctrl+F7编译,Ctrl+F5生成可执行文件,然后将上一步生成的dll与lib文件复制到可执行文件所在的文件夹,下一步添加以来路径:
右键项目属性->链接器->输入,在附加依赖项中添加lib路径:
在这里插入图片描述然后最后生成:
在这里插入图片描述好,到这里两个小时也算没了,再见!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值