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

西安企业网站建设模板机械加工网报价

西安企业网站建设模板,机械加工网报价,wordpress主题know,网站建设应该列入什么科目之前项目中发现的问题,记录下解决方案1. 问题背景OVVRNTool项目中,底层图像基本操作功能由DLL库函数提供,上层基于DLL封装了两个应用CMD和GUI,然后通过Qt打包分发;发布是直接采用绿色免安装的方式打包,具体…

之前项目中发现的问题,记录下解决方案

1. 问题背景

OVVRNTool项目中,底层图像基本操作功能由DLL库函数提供,上层基于DLL封装了两个应用CMD和GUI,然后通过Qt打包分发;

发布是直接采用绿色免安装的方式打包,具体使用release中的exe进行windeployqt的方式将依赖库等打包进一个文件夹;

由于CMD的特殊性,命令行工具用户只希望出现一个单独的exe,而不想要一个文件夹,包含一大堆库和文件,所以采用enigma virtual box工具将文件夹打包成单个exe;

这时发现一个奇怪的问题,当运行系统CMD时,直接调用exe(不管是enigma打包的还是文件夹中的)会报错,找不到DLL库函数配置文件(同事开发的底层库);但是运行CMD,cd到exe当前目录,就没有问题;

2. 问题定位

通过打印库运行时配置文件路径,定位出现该问题是因为DLL找不到它同路径下的配置文件;

底层库默认配置文件和它在一个路径下,在读取配置文件使用了相对路径;系统CMD启动是在C盘,这时候调用exe,导致库认为运行目录在C盘,导致相对路径出错,找不到配置文件。

3. 解决方案

在DLL库调用配置文件时,先获取自身所在的路径,然后拼接配置文件路径(Windows下获取dll完整路径的方法)

#include <windows.h>

#include <string>

//windows下获取当前dll的句柄

HMODULE GetSelfModuleHandle()

{

MEMORY_BASIC_INFORMATION mbi;

return ((::VirtualQuery(GetSelfModuleHandle, &mbi, sizeof(mbi)) != 0) ? (HMODULE)mbi.AllocationBase : NULL);

}

//在程序中通过调用该函数即可获取到dll的完整路径至strDllFullPath中

void GetFullPathOfDll(std::string& strDllFullPath)

{

char szPath[MAX_PATH];

GetModuleFileNameA(GetSelfModuleHandle(),szPath,MAX_PATH);

strDllFullPath = std::string(szPath);

}

http://www.yayakq.cn/news/184768/

相关文章:

  • 网站 流量攻击怎么办域名邮箱企业邮箱
  • 网站设计制作从哪北京移动网站建设公司价格
  • 赤峰市网站建设培训wordpress如何添加头像
  • 网站流量统计系统企业版北京环球影城可以带水果吗
  • 谷歌seo网站推广为企业为什么做网站
  • 林业网站建设方案网站建设每月工作多少
  • 自己的电脑做网站做视频网站需要哪些证
  • 网站备案个人使用wordpress客户管理系统
  • 订房网站开发生态文明建设
  • 网站开发图片文字微信里的商家链接网站怎么做的
  • 怎样做校园网站推广珠海市网站开发公司电话
  • 直播网站建设书籍wordpress图片添加字体
  • 万维网网站注册网站字体标准
  • 美橙互联 送网站三亚西岛
  • 网站底部背景做立体字的网站
  • 做企业网站设计方案天津市做公司网站的公司
  • 网站建设新发展专业科技公司网站欣赏
  • jsp做网站框架iis7 wordpress
  • 建设商城网站公司 百度百科广州各区进一步强化
  • dede手机网站更新app推广赚佣金
  • 大赛网站开发需求网站开发方法有哪些
  • 网站开发方案ppt做网站哪些
  • 网站后台浏览器前沿的设计网站
  • 做营销型网站 推广的好处wordpress添加icp
  • 思茅北京网站建设厦门网红打卡地
  • 织梦装修网站模板中国网站排名 优帮云
  • 广州 网站的设计公司律师网站素材
  • 免费模板素材网站有哪些网页制作免费版
  • 北京专业网站设计公司互联网官网
  • 郑州网站建设工资东莞大岭山俪仁妇产医院