1.问题
在win10 VS2105 环境下面开发了一个调用get接口获取数据然后写入pg数据库的程序,在自己电脑上运行正常。复制到win7环境下运行,单击出现如下图所示的提示框。
2.原因分析
出现这个问题的原因主要是系统环境不一致,也就是很多库文件版本不匹配,库的32位或者64位不匹配。32位程序依赖要用32位的库,64位库文件要使用64位库文件。或者库缺失。
3.解决办法
在部署的电脑上使用depends.exe 工具。会显示缺少了哪些依赖库。
(1)打问号的库文件;说明是库丢失,直接去其他电脑上去搜索或者在脚本之家上去下载,百度下载也可以。但是要找到对应系统位数的库。我程序是32位的,所以我去另外一个64位系统环境的c:/windows/system32中复制了缺少的库:gpsvc.dll、mfc140.dll、msvcr120.dll、sysntfy.dll,但是system32中的库不一定是32位的。复制到win7电脑上depends.exe中显示的该库后面标了一个64.CPU中显示的是x64.
(2)depends.exe中库后面有64数字的库;这种库文件表示是64位的库,如果32的程序,需要去网上下载32位的库。放入程序的根目录。直到depends.exe中显示的64消失,且下面的cpu一栏显示的是x86.
(3)还有很多显示的API_MS_WIN_*开头的库文件也打了问号。这些库文件是系统库文件,先不管,把那些其他的库补充完整后,这些问号自然消失。
(4)标红但是没有显示64的库,是版本不匹配的库文件,这下载对应版本的库文件去。
总结分析:
出现这种问题的问题的原因
(1)win7,win10系统环境,和32位64位系统环境问题,导致库缺失,版本不匹配。
(2)程序本身问题,有些自编译的库是用vs2008编译,现在用vs2015开发程序,用vs2008编译的库,会出现问题,最好用vs2015将自编译的库在重新编译一下;
(3)C++的运行时库runtime library没有安装。安装对应VS版本的运行时库。
(4)自己对系统库进行了修改,删除,或者某些恶意程序对系统库文件进行了修改或删除,导致系统库中的库位数,版本不匹配,或者库缺失,这时需要修复系统。打开cmd窗口,然后执行命令sfc /SCANNOW,这个命令可以对所有的系统文件进行扫描,并将丢失或者损坏的文件进行修复即可,这个过程用时较长,需要耐心等待。
自己开发了一个股票智能分析软件,功能很强大,需要的点击下面的链接获取:
https://www.cnblogs.com/bclshuai/p/11380657.html
百度云盘下载地址:
链接:https://pan.baidu.com/s/1swkQzCIKI3g3ObcebgpIDg
提取码:mc8l
微信公众号获取最新的软件和视频介绍
QStockView