⑴ 為什麼用vs編譯出來的exe文件不能在電腦上運行
vs2010編譯出來的程序默認是debug模式是要用到系統以外的msvcr100d.ll,這個文件在沒有裝vs或vs運行庫的電腦里一般沒有,release模式默認要用到系統外的msvcr100.dll,這個文件也是一般電腦上沒有,你最好把相應的dll放在同一個文件夾中傳過去,以便正常運行。還有,如果你直接傳exe文件,QQ會把這個exe文件重命名成「**.exe.重命名文件」,也就是exe文件到對方那裡成了".重命名"文件,結果對方電腦找不到相關聯的程序,所以提示不知道用什麼打開程序,你可以讓他再重命名成exe文件,要麼你把exe文件放在一個文件夾裡面,然後把文件夾傳過去,文件夾裡面的exe文件是不會重命名的成「.重命名」文件的,只有直接傳exe文件時才會被替換成重命名文件。
⑵ VS製作的exe文件怎麼在別的電腦上運行
調查好你用到的動態庫及靜態庫,放在exe同一個路徑下就能運行,如果不行,把dll放在system32下,或者加環境變數
⑶ 用VS2010寫的程序為什麼在其他電腦上不能運行
要成功運行程序,需要一個名字叫msi的系統資料庫。msi拒絕訪問也就是說,你的程序無法訪問msi這個必要的系統資料庫。。這不是你的程序本身的問題,你的電腦也沒問題!!而是別的電腦有問題,這個原因可能是 別的電腦那個msi系統文件損壞了 或者不存在 這需要修復。
⑷ 用vs2010編譯出來的可執行文件xx.exe(在debug文件夾裡面的那個),在不裝vs的電腦上為什麼就不能運行了
vs2010編譯出來的程序默認是debug模式是要用到系統以外的msvcr100d.ll,這個文件在沒有裝vs或vs運行庫的電腦里一般沒有,release模式默認要用到系統外的msvcr100.dll,這個文件也是一般電腦上沒有,你最好把相應的dll放在同一個文件夾中傳過去,以便正常運行。還有,如果你直接傳exe文件,QQ會把這個exe文件重命名成「**.exe.重命名文件」,也就是exe文件到對方那裡成了".重命名"文件,結果對方電腦找不到相關聯的程序,所以提示不知道用什麼打開程序,你可以讓他再重命名成exe文件,要麼你把exe文件放在一個文件夾裡面,然後把文件夾傳過去,文件夾裡面的exe文件是不會重命名的成「.重命名」文件的,只有直接傳exe文件時才會被替換成重命名文件。
⑸ 求助:用VS2010生成的exe文件為什麼不能直接運行
用vs2010自帶的打包工具打包即可。但也要對方電腦上有.net framework。如果沒有,要額外把這個也打包進去。
⑹ visual studio編寫的exe程序不能在沒裝vs的電腦上運行,怎麼辦啊
其實有很多的解決辦法呀,如下:(一般你看是具體什麼提示然後,使用相應的提示到G.cn或網路找答案即可.....),下面的方法可參考使用...
1).在C:\Program
Files\Microsoft
Visual
Studio
8\VC\redist\Debug_NonRedist\x86
\Microsoft.VC80.DebugCRT
下找到了下列文件:
msvcm80d.dll
msvcp80d.dll
msvcr80d.dll
Microsoft.VC80.DebugCRT.manifest
把這幾個文件拷貝到目標機器上,與運行程序同一文件夾或放到system32下,就可以運行那個程序了。
其他release版,MFC程序什麼的都是拷redist下相應文件夾下的文件就可以了,文件夾後都有標識!
2).修改編譯選項,將/MD或/MDd
改為
/MT或/MTd,這樣就實現了對VC運行時庫的靜態鏈接,在運行時就不
再需要VC的dll了。
3).
工程-》屬性-》配置屬性-》常規-》MFC的使用,選擇"在靜態庫中使用mfc"
這樣生成的exe文件應該就可以在其他機器上跑了。
4).在vc8安裝盤上找到再分發包vcredist_xxx.exe和你的程序捆綁安裝
5).修改項目屬性的編譯開關
工程-->屬性-->配置屬性-->C/C++-->代碼生成-->運行時庫
修改為Multi-threaded(/MT)
修改了Runtime類型以後,需要將MFC的編譯類型也改成靜態庫
工程-->屬性-->配置屬性-->常規-->MFC的使用
修改為:在靜態庫中使用MFC;
一部分情況下在這步就能解決問題,另外一部分情況會遇見如下情況,編譯器報錯:儲如:"再次定義"
解決方法如下:
工程-->屬性-->配置屬性-->鏈接器-->輸入-->附加依賴項
中加入相應的*.lib
(如:加入nafxcw.lib,libcpmt.lib
)這一般根據你程序所報的錯進行修改;
工程-->屬性-->配置屬性-->鏈接器-->輸入-->特定的庫
(如:加入nafxcw.lib,libcpmt.lib
)
這樣鏈接程序就不會先按照默認順序來連接這兩個庫文件,而是在最後在加入對他們的引用.
下面是一張可能發生沖突的列表
若要使用此運行時庫
請忽略這些庫
單線程
(libc.lib)
libcmt.lib、msvcrt.lib、libcd.lib、libcmtd.lib、msvcrtd.lib
多線程
(libcmt.lib)
libc.lib、msvcrt.lib、libcd.lib、libcmtd.lib、msvcrtd.lib
使用
DLL
的多線程
(msvcrt.lib)
libc.lib、libcmt.lib、libcd.lib、libcmtd.lib、msvcrtd.lib
調試單線程
(libcd.lib)
libc.lib、libcmt.lib、msvcrt.lib、libcmtd.lib、msvcrtd.lib
調試多線程
(libcmtd.lib)
libc.lib、libcmt.lib、msvcrt.lib、libcd.lib、msvcrtd.lib
使用
DLL
的調試多線程
(msvcrtd.lib)
libc.lib、libcmt.lib、msvcrt.lib、libcd.lib、libcmtd.lib
⑺ vs2013編譯後EXE無法運行
需 要對方電腦也安裝.netframework
版本和你開發時的版本一樣才行的