利用VS2015将C++类封装成DLL动态链接库
最近在进行OSG开发,想将里面模型导入部分重复使用的代码封装成DLL,这样后续不需要重复编写这部分代码了。而C++类封装成DLL步骤如下:
1、 VS2015新建一个Win32项目,应用程序类型选择DLL
2、新建DLL项目后,项目解决方案文件结构如下:
![](https://img2018.cnblogs.com/blog/1704870/201907/1704870-20190711231256441-344009170.png)
3、配置OSG库
因为DLL使用到了OSG库,所以项目首先要配置OSG库,如下:
4、打开OSG.h头文件,进行代码编写修改
在头文件中加入OSG库的相关头文件,并且在类中进行函数和变量的声明,头文件如下(标红部分为添加代码):
5、在源文件中OSG.cpp中,添加类的函数相应的实现,如下(标红部分为添加代码):
6、在VS2015中按F7(生成解决方案)
如果编译成功,则输出如下
如果是在Debug环境下编译的,则在Debug目录下会生成DLL文件和lib文件;Release环境下同理。另外,如果封装后的DLL是在x64环境下的项目使用,则此处需要在Debug下的x64环境下编译生成。
7、分别在DLL项目相应位置配置OSG.h、OSG.lib、OSG.dll三个文件,我们就能使用封装类的方法了(参看笔记:VS的可执行文件目录、包含目录、库目录、附加包含目录、附加库目录、附加依赖项的解释和区别)。
PS:在编译成功生成DLL项目有,按Ctrl+F5 不调试执行,提示如下错误:
![](https://img2018.cnblogs.com/blog/1704870/201907/1704870-20190711231345156-4349359.png)
原因:
因为此DLL封装项目不是可执行项目,运行不了的。只要编译成功后,就完成了DLL的封装。
<wiz_tmp_tag id="wiz-table-range-border" contenteditable="false" style="display: none;">