机器视觉系列1:Visual Studio 2019 动态链接库DLL建立

系列文章目录

第一章:Visual Studio 2019 动态链接库DLL建立


目录

系列文章目录

前言

一、DLL是什么?

二、建立步骤

1.安装VS

2.建立DLL库

 三、新建DLL

 四、编译DLL

总结


前言

最近开始一个医疗机器视觉项目,需使用C++,记录一些关键点。

环境:Windows10, VS2019,opencv320


一、DLL是什么?

动态链接库DLL是一些独立的文件,其中包含能被可执行程序或其他dll调用来完成某项工作的函数,只有在其他模块调用dll中的函数时,dll才发挥作用。在实际编程中,我们可以把完成某项功能的函数放在一个动态链接库里,然后提供给其他程序调用。像Windows API中所有的函数都包含在dll中,如Kernel32.dll, User32.dll, GDI32.dll等。

二、建立步骤

1.安装VS

官方网址,最新版为2022

Visual Studio 2022 IDE - 适用于软件开发人员的编程工具 (microsoft.com)

2.建立DLL库

代码如下(示例):

1,新建项目

2,选择动态链接库(DLL)

 3,设置项目名称,无特殊需求不勾选(将解决方案和项目放在同一目录中)

  4,生成默认文件,无需修改。

   5,使用属性管理器配置属性,详情见系列文章第二章。

   6,修改预编译头,属性页——C/C++——预编译头——不适用预编译头。

        注:不修改程序会报错,具体以后再研究

 三、新建DLL

1,在项目下头文件,右击新建头文件(.h),用来声明需要导出的函数接口。

 2,在项目下源文件,右击新建源文件(.cpp),用来实现被声明的函数。

工程目录如下:

 

 下面就可以编写代码了。

.h文件

下面代码的功能是声明一个可被调用的函数“SayHello()”,它的返回类型是void。

#pragma once
#include <iostream>

extern "C" __declspec(dllexport) void SayHello();

现在分析一下extern "C" __declspec(dllexport) void SayHello();这一句代码,其中extern "C"的作用是告诉编译器将被它修饰的代码按C语言的方式进行编译,这么做的意义在此不做讨论,感兴趣的话可自行查询。然后分析__declspec(dllexport),此修饰符告诉编译器和链接器被它修饰的函数或变量需要从DLL导出,以供其他应用程序使用;与其相对的还有一句代码是__declspec(dllimport),此修饰符的作用是告诉编译器和链接器被它修饰的函数或变量需要从DLL导入,它在后面也会被用到。最后是函数void SayHello(),它就是需要被其他程序调用的函数。

.cpp文件

实现.h文件中声明的函数

#include "pch.h"
#include "TestDLL.h"

void SayHello()
{
	std::cout << "Hello!你成功了!" << std::endl;
}

代码编写完成。

 四、编译DLL

如果属性环境没有问题,点击编译

 点击编译跳出下面弹窗,点击确认(DLL不会生成exe,可无视报错)

在项目路径——x64——debug文件夹下生成文件。

编译完成。


总结

1、上述教程只适用于调试模式下,若想直接启动TestDLLCreated.exe应用程序,还需将“TestDLL.dll”和“TestDLL.lib”文件复制到与TestDLLCreated.exe同一目录下才可以运行!

2、可使用属性管理器配置属性,别的项目可以直接使用属性,避免重复设置。

参考:https://blog.csdn.net/elaine_bao/article/details/51784864

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
数字图像处理机器视觉是两个相关领域,旨在通过计算机对图像进行处理和分析,以实现各种目标。Visual C和Matlab都是常用的编程工具,可以用来实现数字图像处理机器视觉的算法。 Visual C是由微软公司开发的集成开发环境(IDE),它支持C语言和C++语言。通过Visual C,我们可以使用其内置的图像处理库和函数,编写和调试数字图像处理机器视觉算法。Visual C提供了丰富的功能和工具,包括图像读取、显示、滤波、分割、特征提取等等。它也支持硬件加速,可用于处理实时图像或视频。 Matlab是一种高级的数值计算和编程语言,也是一个功能强大的环境,适用于各种科学和工程应用。Matlab具有丰富的图像处理机器视觉的工具箱,包括图像增强、分割、目标检测、特征提取等等。使用Matlab,我们可以方便地进行图像处理算法的开发和实验,快速验证算法的效果。 在实际应用中,我们可以根据不同的需求和实际情况选择使用Visual C或Matlab来实现图像处理机器视觉算法。如果我们需要编写底层算法或进行实时图像处理,我们可以选择使用Visual C;如果我们更注重快速原型开发、算法验证和实验,我们可以选择使用Matlab。当然,Visual C和Matlab也可以结合使用,根据具体需求进行开发。 总的来说,数字图像处理机器视觉是非常重要的技术领域,通过Visual C和Matlab等工具的使用,我们可以更便捷地实现各种图像处理机器视觉算法,为实际应用和科学研究提供支持。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值