VS2013之Windows平台兼容性问题

有时候生成的产品,由于客户电脑上一般都是没有安装VS的,导致运行会软件崩溃或者直接提示:The application was unable to start correctly (0xc000007b)。这些都是缺少一些系统的DLL问题引起的。

 

一、不同屏幕分辨率的兼容性问题

//Qt从5.6.0开始,支持High-DPI。
int main(int argc, char *argv[])
{
#if (QT_VERSION >= QT_VERSION_CHECK(5, 6, 0))
    QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
#endif
    QApplication a(argc, argv);
    ......
}

使用这个方法可以解决大部分屏幕兼容性问题,方便快捷,但是如果在使用软件时修改了屏幕分辨率,那么会出现软件界面过大的问题

二、不能系统的动态库缺失的兼容性问题

1、使用VS查看生成的exe文件所有dll依赖库

打开文件

然后根据VS中生成的exe是32位还是64位来打开命令提示工具

然后使用命令进入exe运行的路径,再exe路径 + dumpbin /dependents exe名称.exe

或者直接dumpbin /dependents exe路径

如果名称有空格的需要带“”

回车后就会显示exe需要的依赖库

原则上建议将所有的库都和exe放在一起,以免在别的电脑上打开exe会提示什么乱七八糟的错误的问题,这些都是缺少库或者32/64不一致导致的

2、使用Dependency Walker工具查看exe使用的依赖库是否正确

Dependency Walker 是 Microsoft Visual C++ 中提供的非常有用的 PE 模块依赖性分析工具。

主要功能如下: 

查看 PE 模块的导入模块。 

查看 PE 模块的导入和导出函数。 

动态剖析 PE 模块的模块依赖性。 

解析 C++ 函数名称。

官网下载:http://www.dependencywalker.com/

或者:https://download.youkuaiyun.com/download/bigtree_mfc/12628256

根据exe是32位还是64位来使用对应的工具

将要检测的exe使用拖到软件的工作区

通过这个软件可以知道exe缺少的DLL库,来解决兼容性的问题

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值