C++类封装成DLL动态链接库

Posted zcmacbeth

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++类封装成DLL动态链接库相关的知识,希望对你有一定的参考价值。

最近在进行OSG开发,想将里面模型导入部分重复使用的代码封装成DLL,这样后续不需要重复编写这部分代码。而C++类封装成DLL步骤如下:

1、 VS2015新建一个Win32项目,应用程序类型选择DLL

技术图片
技术图片

2、新建DLL项目后,项目解决方案文件结构如下:
技术图片

3、配置OSG库
因为DLL使用到了osg库,所以项目首先要配置osg库,如下:
技术图片
技术图片


4、打开OSG.h头文件,进行代码编写修改
在头文件中加入OSG库的相关头文件,并且在类中进行函数和变量的声明,头文件如下(标红部分为添加代码):
技术图片

5、在源文件中OSG.cpp中,添加类的函数相应的实现,如下标红部分为添加代码):
技术图片

6、在VS2015中按F7(生成解决方案)
如果编译成功,则输出如下

技术图片
如果是在Debug环境下编译的,则在Debug目录下会生成DLL文件和lib文件;Release环境下同理。另外,如果封装后的DLLx64环境下的项目使用,则此处需要在Debug下的x64环境下生成。

7、分别在VS2015的项目相应位置配置OSG.h、OSG.lib、OSG.dll三个文件,我们就能使用封装类的方法了(参看笔记:VS的可执行文件目录、包含目录、库目录、附加包含目录、附加库目录、附加依赖项的解释和区别


PS:在编译成功生成DLL项目有,按Ctrl+F5 不调试执行,提示如下错误:
技术图片
原因:
因为该DLL封装项目不是可执行项目,运行不了的。只要编译成功后,就完成了DLL的封装。



以上是关于C++类封装成DLL动态链接库的主要内容,如果未能解决你的问题,请参考以下文章

C++封装Halcon算法动态链接库Dll补充

如何用VS2010编写动态链接库DLL

Visual Studio 2017 动态链接库(DLL /LIB) 静态链接库(LIB)的思考

nodejs调用C++动态链接库

如何在C语言中调用C++做的动态链接库

用C语言如何写DLL动态链接库?VB.net 又如何调用其生成的DLL库?急急急!!!!在线等!!