日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

VS2010 MFC exe独立系统环境运行

發布時間:2025/3/21 windows 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 VS2010 MFC exe独立系统环境运行 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

如何讓一個VS 生成的 exe 在沒有安裝VS 以及 依賴項dll 的電腦上運行,嘗試了一下,將中間遇到的問題記錄一下。

1. 在vs里面編譯運行可以,但是點擊Debug里面的.exe卻顯示如下問題:

程序目錄下已經添加此dll文件,一般情況下,我們會把程序中調用到的dll 文件放于.exe同一目錄下。

顯示為dll文件問題,后發現為路徑問題,我的.exe文件 路徑為:工程目錄/x64/Debug/**.exe,后將 .exe文件拷貝至 工程目錄/Debug/**.exe ,點擊可以運行。因為我在工程目錄下添加了lib、include、Resource等文件夾,代碼中有關路徑的問題導致的。

2.? 在其他電腦上 用程序無法正常啟動0xc0150002?的問題:

試用的另一臺電腦有安裝vs等,但是不管是點擊exe還是直接用vs打開編譯都會出現此類錯誤。

查找資料有說將設置為在靜態鏈接庫中使用MFC和MT,但是如果使用的靜態庫會有很多錯誤,未識別的外部符號等,還需要自己重新靜態編譯庫,還是pass掉此種方法。

考慮到是因為機器上的dll文件不相同所致,可能是機器上沒有需要的dll文件,即使有也不能保證dll文件的版本相同。

借助于工具 Dependence 來查看所生成的exe文件依賴的dll文件有哪些 ,可以從此網站下載軟件http://www.dependencywalker.com/

如圖:

無視紅色的錯誤提示信息,左側窗口可以查看.exe都是依賴于哪些dll文件,將這些dll文件全部拷貝到.exe文件夾目錄下,可以運行。

opencv類的都在opencv安裝目錄下OpenCv244\opencv\build\x64\vc10\bin;

msvcp100.dll等在 s安裝目錄\VC\redist\x64\Microsoft.VC100.CRT和\VC\redist\Debug_NonRedist\x64\Microsoft.VC100.DebugCRT;

?需要的系統的dll文件都在C:\Windows\System32,在我需要的項目中光此文件下的dll文件就拷貝了二十多個。


3.為了讓32位與64位的電腦都能運行,要將工程改為32位。 在X64 win7 系統下 vs2010建立工程設置為 win32 調用 opencv 32位庫以及配置了32位的dll文件,編譯可以通過,運行出現錯誤: 應用程序無法正常啟動0xc000007b? 依然是dll文件問題,dll文件沒有在搜索路徑上,或者dll文件位數不對。 在工程中Configuration Properties-> VC++ Directories -> Executable Directories中添加 bin路徑,沒有用,雖然其中默認包括了 $(PATH)。 需要將dll文件放于exe同目錄下,或者加入系統環境變量path。
4. 同樣是3的問題中,將exe所有依賴的dll文件全部換為32位的,程序報**.dll文件沒有被指定在windows運行,或者包含錯誤。 我以為系統32位dll文件在C:\Windows\SysWOW64路徑下。sysWoW64 (Windows-on-Windows 64-bit)是一個Windows操作系統的子系統, 能夠運行32-bit 應用? windows操作系統程序, 并且在所有的64-bit 版本的windows上都存在。 之前換成系統在C:\Windows\System32下的dll文件會報錯,后來就換成自認為32位dll所在的C:\Windows\SysWOW64,兩者程序報錯相同。 后從網上從新下載dll文件拷貝到exe同目錄下,可以運行。 后發現所調的文件在C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Include下。 
5. 問題4解決后,程序的某些功能失效,比方說點擊一個按鈕,打開一個對話框,這時候對話框彈不出來。 這種情況,我在測試電腦上裝了vs2010后,把 exe同目錄下系統dll文件刪除,這樣程序會調用系統的dll文件,這個時候對話框可以打開,發現是所調用的dll文件不同。 且opencv的功能有問題,cvcapture一直返回NULL,疑似是dll文件拷貝不全的原因,將dll文件全部拷貝到exe同目錄下沒有問題。但是另用一臺電腦依舊只返回NULL,此原因沒有確切搞清楚。  

總結

以上是生活随笔為你收集整理的VS2010 MFC exe独立系统环境运行的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。