在Vs 2019 导入Qt 开发的外部dll 文件并使用
1. 写在前面
在实际项目开发中,很多模块是以dll 的方式存在的,需要使用对应模块的方法时,引入对应的dll和.h文件,直接调用即可。
这种方式做到了软件开发的隔离,但是对我们的日常调试产生了一定的困扰!如何对生成dll 的项目进行调试,有两种方式:
- 新建项目,引入要调试的dll 项目文件,在新的项目中调试对应的代码
- 直接和实体的release项目合作,借助实体程序进行代码调试
本文主要讲如何新建项目,导入调试的dll 文件
2. 在Visual Studio 2019中创建Qt DLL项目
首先,确保已经在Visual Studio中安装了Qt扩展(请自行搜索
),并配置好Qt版本(必须)。
- 打开Visual Studio 2019(你可使用任何你中意的编译环境,但那就不是本文的介绍范围了),选择“创建新项目”。
- 在搜索框中输入“Qt”,选择“Qt Library Project”。(当然你可以选择其他的模板,只要配置好导出都是可以的(后文有介绍),见参考链接)
- 输入项目名称,选择合适的位置保存项目,并点击“创建”。
- 在弹出的Qt Project Settings对话框中,选择合适的Qt版本和模块(如QtCore、QtGui等),然后点击“确定”。
3. 编辑程序
为了从DLL中导出类或函数,需要使用宏定义来控制导出(有不懂的可以看参考链接)。在Qt项目中,通常在头文件中定义如下宏:
#if defined(MYLIB_LIBRARY)
# define MYLIB_EXPORT Q_DECL_EXPORT
#else
# define MYLIB_EXPORT Q_DECL_IMPORT
#endif
并在需要导出的类头文件中添加 Q_DECL_EXPORT
确定头文件可用
class MYLIB_EXPORT MyClass {
public:
void myFunction();
};
如图:
在新项目中需要使用的接口类均需要在类定义时 Q_DECL_EXPORT宏,否则会报LNK2001或找不到对应的头文件
4. 导出lib 和dll 文件
在完成项目的编辑后,就可以生成在其他项目中使用的dll 文件了,点击生成,dll和lib 文件会生成在项目的输出目录中(*.lib只是用在编译器链接编译),如果你对lib 的使用仍有疑问,可查看参考链接,应该能解决你的疑问。
你可以通过下图中的两种方式找到文件的输出目录:
- 点击生成,查看输出窗口,会输出dll和lib 文件的输出目录
- 项目->右键 属性 ->常规-> 输出目录-> 点击浏览
这样你应该就生成并找到了dll 文件和lib 文件了
5.导入DLL并使用
如何导入dll 文件,我认为不是什么难点,但是有几点必须:
-
在属性-> C++ -> 常规 中设置dll 对应的.h 所在的目录
-
在链接器-> 常规 -> 附加库目录中添加lib 所在目录
-
在链接器-> 输入-> 附加依赖项中添加lib文件
之后,你应该就可以愉快调用dll 中的方法,并尽情使用了!!!(如果配置过程中,遇到了什么问题,欢迎私信或邮件king@3469.top)