编写可以在Qt4、Qt5中同时执行的代码

来源:互联网 发布:lol美服账号购买 淘宝 编辑:程序博客网 时间:2024/06/04 08:56

简述

我们写出的代码既希望它能够在Qt4.X版本上运行,又希望它能在Qt5.X版本上运行,如何实现呢?

  • 简述
  • Qt4X与Qt5X的区别
  • 方法
    • 解决文件包含路径不同
    • 解决编译时链接的lib不同
    • 解决运行时加载的dll不同

Qt4.X与Qt5.X的区别

  1. 文件包含路径不同
  2. 编译时需要链接的lib不同
  3. 运行时需要加载的dll不同

方法

解决文件包含路径不同

以Qt5.X中的QtWidgets在Qt4.X中需要替换为QtGui为例

#if QT_VERSION>=0x050000#include <QtWidgets>#else#include <QtGui>#endif

解决编译时链接的lib不同

只要正确的包含了头文件,系统会自动链接正确的lib,这一点不用担心。

解决运行时加载的dll不同

可以在exe同目录下建立两个文件夹,Qt4Dll和Qt5Dll分别存放Qt4和Qt5版本的dll,然后用以下代码进行设置。

#if QT_VERSION>=0x050000    SetDllDirectory(_T("./Qt4Dll"));#else     SetDllDirectory(_T("./Qt5Dll"));#endif

或者使用

#if QT_VERSION>=0x050000    LoadLibrary(_T("./Qt4Dll/*.dll"));#else     LoadLibrary(_T("./Qt5Dll/*.dll"));#endif
阅读全文
0 0
原创粉丝点击