当前位置: 首页 > news >正文

国人在线做网站城建公司建设网站基础资料

国人在线做网站,城建公司建设网站基础资料,宣传片制作协议,pc网站 手机网站 微信网站 上海写在前面 在Qt的实际开发中#xff0c;免不了使用和创建动态链接库#xff0c;因此熟悉Qt中动态链接库的创建和使用对后续的库开发或使用是非常用必要的。 在之前的文章https://blog.csdn.net/SNAKEpc12138/article/details/126189926?spm1001.2014.3001.5501中已经对导入…写在前面 在Qt的实际开发中免不了使用和创建动态链接库因此熟悉Qt中动态链接库的创建和使用对后续的库开发或使用是非常用必要的。 在之前的文章https://blog.csdn.net/SNAKEpc12138/article/details/126189926?spm1001.2014.3001.5501中已经对导入导出的声明有过详细介绍了通过Qt向导创建的动态库项目也会带上这些声明因此这里不再赘述。 开发环境; Qt5.15.2 Qt Creator10.0.2 动态链接库的创建 打开Qt Creator创建项目 - 选择 库 - C Library 自定义项目名称和存放路径 默认使用qmake构建 库类型默认 无需翻译文件 选择构建套件这里使用Qt 5.15.2 MSVC2019_64bit 最后的总览; 生成后可以看到向导自动生成了如下文件 .pro文件内容如下; qtdlltest.h头文件中定义了导出类信息内容如下; QtDllTest_global.h头文件主要通过上面.pro文件中定义的QTDLLTEST_LIBRARY宏来区别导入和导出声明 最后是导出类的实现: 编译运行可以在生成路径下生成了一个dll 这里添加一个成员函数以便后面使用 重新生成同样可以使用dumpbin工具查看导出信息 如何配置使用VS提供的dumpbin工具可参考https://blog.csdn.net/SNAKEpc12138/article/details/126109249?spm1001.2014.3001.5501 虽然发生了名字改编也不影响我们在Qt项目中使用可参考https://blog.csdn.net/SNAKEpc12138/article/details/126235303?spm1001.2014.3001.5501 动态链接库的使用 在其他项目中使用Qt动态链接库需用到以下文件 ①导入/导出声明全局文件。例上面的QtDllTest_global.h若未使用全局文件则无需。 ②导出声明头文件。例上面的qtdlltest.h ③lib 和 dll。例生成目录下的QtDllTest.lib 和 QtDllTest.dll 下面再创建一个新的项目来使用上面生成dll, 这里使用一个简单Qt控制台程序示例。 首先将需要的文件拷贝到使用项目的目录下头文件和.lib文件可需防止.pro文件所在目录下因为要在代码中引用.dll文件放在生成目录下。 这里习惯将头文件放在.pro目录下的include文件夹中将.lib文件放在.pro目录下的lib文件夹中: 将.dll文件放在项目的生成目录下不知道项目的生成目录可在Qt Creator左侧的项目界面中查看 文件放置妥当后即可开始使用动态链接库了这里也可分为静态加载和动态加载两种方式。 静态加载 在使用项目的.pro文件中添加附加库目录和导入.lib 补充$$PWD为.pro文件所在目录。 在代码中使用 注意上面.pro文件中的LIBS $$PWD/lib/QtDllTest有的版本无需加上.lib后缀而有些版本则需要加上.lib后缀。 当出现以下报错(**LNK1181: 无法打开输入文件: ***\库名称.obj)时则需要加上.lib后缀 动态加载 因为动态加载只能调用动态库的导出函数而且必须是externC的调用不了类因此这里需要重新在dll项目中添加一个全局函数 重新生成后更新qtdlltest.h、QtDllTest.lib、QtDllTest.dll到使用项目中 然后即可在使用项目中动态加载 #include QCoreApplication //#include qtdlltest.h#include QLibrary #include QDebugint main(int argc, char *argv[]) {QCoreApplication a(argc, argv);// QtDllTest dll; // dll.printFromDll();QLibrary lib(QtDllTest.dll);if (!lib.load()){qDebug() Failed to Load Library!;qDebug() lib.errorString();return 0;}typedef void (*pFunc)();pFunc f lib.resolve(globalPrint);if (f){f();}else{qDebug() Failed to get function!;}return a.exec(); } 输出如下: 总结 综上简单介绍了Qt动态链接库的创建和使用使用时也分别示例的静态加载和动态加载的区别。 需要注意的是 ①静态加载添加.lib文件时因Qt版本不同可能需要加上.lib后缀。 ②动态加载时只能加载externC的全局函数不能加载类因此在Qt中一般不会使用这种加载方式。 若想使用动态加载且用到导出类时Qt中提供了QPluginLoader插件类来实现这个会在之后的文章中详细介绍。
http://www.hkea.cn/news/14408796/

相关文章:

  • 网站访问速度检测服饰 视频 网站建设
  • 建设银行网站e动终端Wordpress 菜单 增加登陆
  • 江苏怎么做网站排名优化做网站工作
  • 自己做网站好不好wordpress app生成
  • 手机网站绑定域名是什么意思长春火车站最新通知
  • 建网站要多少钱一个月泸州市住房和城乡建设局网站
  • 济南住宅与房地产信息网官方网站网站做收款要什么条件
  • 阜阳网站建设logo素材大图
  • 官网网站建设平台教育培训网站抄袭
  • 乐清网站艰涩哪里购买网站广告位
  • 用ppt做网站新建网站建设
  • 网站权重低厂房设计装修公司
  • 网站设计一般多少钱沈阳制作网站的公司
  • 做网站给女朋友网站页面创意
  • 企业邮箱价格百度人工优化
  • 双语网站建设费用微平台是什么意思
  • 沈阳做网站直播的公司大连网站流量优
  • 开网店咨询seo短视频入口引流
  • 简单门户网站开发网上注册公司审核需要多久
  • 石家庄网站推广排名深圳注册公司注册资金要求
  • 免费网站源代码杭州seo管理
  • 官方网站域名备案佛山网站建设哪里有
  • 网站自然优化自学洋气的设计公司名字
  • 南京做网站公司哪家好wordpress模块插件
  • 网站域名是什么意思搜索引擎推广是什么意思
  • 亚马逊全球开店官方网站北京 成品网站
  • 上海的网站开发公司电话scrm企业微信管理系统
  • 网校网站模板深圳建筑工程公司排名
  • 学前心理学课程建设网站景点旅游网站开发与设计
  • 那种电影网站怎么建设深圳平面设计