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