最近开始着手做上位机界面,开始将之前写好的c++项目打包DLL(动态链接库文件),以供其他的vs项目使用。已经经过验证,自己在打包的过程中出现了一些问题,此博客用来记录问题以及打包过程。
1、打开VS2015,点击:新建—》项目—》VC+±-》win32项目–》下一步-,选择DLL,将下面的对勾画上。
项目新建完成。
2、完成创建项目之后,自动生成一些文件。dllmain文件相当于之前常规项目的main函数,不需要管就可以。
将调试器选择成release(非常重要),X86或者X64根据自己安装的软件所决定,我的opencv安装的是X86所以我选择的是X86.
3、右击头文件新建一个.h文件,取名字为Dll.h,同理新建一个.cpp文件,取名为Dll.cpp,
4、头文件是作了一个概括,这个概括包括了定义的函数,而函数的具体实现,就在Dll.cpp中完成。
在Dll.h文件中写以下代码:
在这里插入代码片
#pragma once//防止重复编译文件报错
//这边需要配置openCV:网上有很多配置opencv的资源可以去参考
#include <iostream>
#include "opencv2/opencv.hpp"
using namespace std;
using namespace cv;
//函数声明
extern __declspec(dllexport)void ShowImage();
在.cpp文件中写函数的实现过程:
#include "stdafx.h"
#include <iostream>
#include "opencv2/opencv.hpp"
#include " Dll.h "
using namespace std;
using namespace cv;
void ShowImage()
{
//读取图片
Mat src = imread("C:\\Users\\Administrator\\Desktop\\1.png");
//显示图片
imshow("图片",src);
}
```cpp
在这里插入代码片
写完之后会有opencv相关的函数等爆红线,这边的原因是没有配置opencv,网上资源很多,自行去查找如何在vs中配置opencv(包含目录、库目录、附加依赖项等配置博客上很多资料)。配置完成就没有这个问题了。
`
``
完成之后,右击项目点击生成。打开项目文件中的release文件夹发现生成了6个文件。
在我们完成DLL文件生成后,我们要把生成的dll文件应用到其他的项目中只需要CreatDLL.dll文件、CreatDLL.lib文件、DLL.h文件,给另一个工程使用。使用方法如下所示:
1、
2、将将调试器选择成release(非常重要),X86或者X64根据自己安装的软件所决定,我的opencv安装的是X86所以我选择的是X86.
3、在新建项目的文件夹中,新建两个文件夹,一个名字叫include,吧DLL.h文件拷贝进去,新建一个lib文件夹,将CreatDLL.lib拷贝进去,将DLL.h和CreatDLL.lib的文件路径添加到引用目录和库目录之中,将CreatDLL.lib复制进去附加依赖项中
在新建的项目中的。cpp文件中写main函数调用函数即可。
在这里插入代码片
#include "stdafx.h"
#include "DLL.h"
int main()
{
ShowImage();
return 0;
}
右键生成,将CreatDLL.dll复制到新出现的release文件夹中。调试运行即可
```至此已经完成完成包含opencv功能的DLL的打包以及运用到别的项目。有问题随时交流呀。
`