當前位置:首頁 » 編程軟體 » 編譯出來的程序無法在xp環境下

編譯出來的程序無法在xp環境下

發布時間: 2022-07-19 19:35:49

❶ vs2012 編譯出的程序無法在xp環境下運行,高手來

用SDK提供的Depends.Exe 工具查找你程序運行所需的DLL或DLL引用的庫文件,確保沒有什麼遺漏。

❷ VB編寫的程序在XP系統上運行不正常

1, 檢查程序源代碼,是否有網路相關部分。
確定有,而且必須要用,請在xp的防火牆設置中增加其的使用許可。
2. 編譯為EXE
文件->生成...->選項->編譯
這里選擇P-Code,不要選擇本機代碼。

❸ win7下VS2010編寫的程序在XP下不能運行

這個是由於兼容性不好造成的。
解決辦法:
1、更換電腦的操作系統為XP,在XP環境下編寫。
2、直接使用win7系統編寫針對於win7系統的程序,這個是發展趨勢。
3、更換軟體利用其他第三方軟體進行編程製作。

❹ 求助Qt5.6編譯的程序無法在winXP系統下運行

版本還是太高了一些。
只能用xp兼容方式從新編譯一遍整個qt庫。
或者是用5.4版本的應該也是沒問題的,版本不能太高,畢竟系統太老。

❺ 為什麼Qt編譯的程序不能在XP上運行

首先,你要在在windows和linux系統上都安裝qt。這樣一個代碼就能分別在windows和linux系統上編譯成程序,然後運行。
注意:在linux系統的文件名的絕對路徑有區別,也不能使用vs的函數。

❻ c++程序在xp系統為何無法運行

不同的windows之間,有些東西是不兼容的,名字相同的東西內容有差異,動態鏈接庫不同。
win10 是 64位機,XP是32位。 Dev-C++ 編譯器 的適應性差於 MS VC++ 6.0。
---------
你試用 MS VC++ 編譯。注意,根據程序目標工作的操作系統類型,加上宏定義。
對於 Windows XP with Service Pack 3 (SP3) 加上宏定義:
#define WINVER 0x05010300
對於 Windows XP with Service Pack 2 (SP2) 加上宏定義:
#define WINVER 0x05010200
若要運行在 win10 上 加上宏定義:
#define WINVER 0x0A00
其它 windows 版本 要 用 相應的 宏。按版本,分別編譯出 .exe 文件。
這樣,就可解決 在先進的操作系統版本上 編譯出 可用於 老版本 上的可執行程序了。

❼ qt5.1,win7下做的程序在xp里為什麼不能運行

一般是因為兼容性問題。如果實在要運行就安裝xp模式,然後在該模式下運行所需程序。 這個具體看情況:首先看程序不能運行是根本不能載入,也就是說系統告訴你程序無法啟動。這個可能和dll的版本有關系,比如msvcrt.dll等。另一種情況是程序啟動後,程序邏輯出現問題,該問題需要調試才能知道。舉個例子:比如說程序需要對系統進行一些操作,而該操作需要用戶許可權,由於vista之後,出現了個變態的UAC,使得管理員許可權名存實亡,這樣當程序進行這類操作時失敗。所以說需要具體問題具體分析。

❽ windows 7 中用vs2010寫出來的程序不能運行在xp中

在工程上【右鍵】,選擇【屬性】,在彈出的對話框中【配置屬性】-》【常規】-》【項目默認值】-》【MFC的使用】,選擇「在靜態庫中使用MFC」,然後重新編譯工程。

❾ vs2012編寫的c#窗體程序在xp上跑不了,怎麼辦

微軟為了推銷自家平台,默認配置下VS2012和VS2013編寫的應用程序只能在Vista/Win7/Win8上運行。但幸好還保留了生成XP程序的設置項。XP和Win2003的用戶還是大量存在的,我們程序軟體的發布不能不考慮他們。

1.
項目菜單->項目屬性->配置屬性->常規->平台工具集,選擇「VS2013WindowsXP(v120_xp)」;

2. 項目菜單->項目屬性->配置屬性->常規->MFC的使用,選擇在靜態庫中使用MFC;

3.
項目菜單->項目屬性->鏈接器->系統->子系統->控制台或窗口windows(根據你的項目類型選擇),第二項版本號設成5.01。

4. C/C++->代碼生成->運行庫,選擇「多線程調試(/MTd)";

5. 還需要至少帶有Update3(或4),這一點我沒有驗證,因為我直接安裝的就是帶有Update3的VS2013。

以上就OK了。缺點仍然有,例如靜態編譯的EXE比正常動態要大不少,目前我尚未試出動態編譯後在XP中能運行的方法,--不過這個不要緊,因為VS2013版本如此之高,客戶的電腦上很難自帶配有它的運行庫,你即使動態編譯,發布軟體時也還是要帶上運行庫的,只不過在多個程序時只需帶一份運行庫罷了。

另外,我在實際大項目中用上述方法,仍有出錯現象發生。以後再研究吧。一般情況下上述方法就可以了。

在網上另外發現了這個貼子,說得很詳細,包括非IDE的命令行編譯,一起貼到下面:

問題一:編譯出來的exe在xp上面運行提示「不是有效的win32應用程序」

在vs2012/2013版本裡面,其自帶的c編譯器cl.exe,若直接使用cl
a.c編譯,那麼生成出來的exe放在vista及以上版本直接運行沒有問題,但是在xp上則會出來「不是有效的win32應用程序」的出錯提示。這是因為vs2012/2013自帶的c編譯器默認情況下生成的exe會默認只支持vista及以上版本的windows系統。

解決方法:

對於使用命令行cl.exe直接編譯的方式:

先用cl a.c編譯一遍,此時會生成a.exe和a.obj兩個文件,此時,再執行 link b.obj
/subsystem:console,5.01,它會鏈接一個新的a.exe出來,此時的exe就可以在xp上運行了。相比vs2010以及以前版本的編譯器編譯,會多第二步的link過程,後面的參數也很容易理解,subsystem,5.01,此處的5.01是指的windows內核版本號,5.01表示windows
2000 with sp1,即此exe可以在win2000 sp1及以上的windows中執行。

當然,這個地方的/subsystem後面有很多參數,上面給的console,5.01是指命令行程序,如果是有GUI即有窗口的程序,改成windows,5.01即可。!!注意!!此處的5.01一定不要想當然改成5.0就變成windows
2000
不帶sp1的版本,實際上,5.0並不被vs2013的編譯所承認,會報警告不認5.0,就會按照默認的不帶5.01的方式編譯,這樣就無法在vista以下的系統中運行生成的exe了。

對於在vs2013裡面使用新建項目的方式:

右擊相應的項目,選擇「屬性」,在項目屬性頁中的「配置屬性」下面的「常規」裡面,把「平台工具集」,由「Visual Studio 2013
(v120)」改成「Visual Studio 2013 - Windows XP
(v120_xp)」,確定之後,重新生成項目即可。當然這里按這樣修改的話,就只能在winxp及以上的版本系統裡面運行了。

問題二:用vs2010/2012/2013編譯出來的exe在未安裝vc++運行庫的機器上運行時提示」未找到MSVCR120D.DLL「從而無法運行

這是個老問題了,無非就是運行庫動態編譯和靜態編譯的問題了。dll動態載入的話有個好處,它可以減少生成的exe文件的體積,但是缺點就是如果對應的系統環境變數或者exe所在的目錄裡面找不到其所需要的dll文件的話,程序就會拒絕執行。而靜態編譯就是把所有需要的庫都靜態編譯到exe文件裡面,這樣就可以在所有的系統平台上都能運行,但它也有一個缺點,就是生成的exe文件因為已經帶了部分庫的代碼,所以體積會相對動態編譯出來的exe大(具體大多少要根據庫的內容才能確定)。

解決方法:

對於直接使用cl.exe和link.exe編譯連接的方式:

直接在cl.exe編譯的時候或者在makefile裡面把編譯參數加上/MT即可。

對於在vs2013裡面使用新建項目的方式:

右擊相應的項目,選擇「屬性」,在項目屬性頁中的「配置屬性」下面的「C/C++」下面的「代碼生成」一項,由默認的「多線程調試DLL
(/MDd)」,改成「多線程 (/MT)」,確定之後,重新生成項目即可。這樣所得的exe文件就是靜態編譯了。

熱點內容
在什麼地方查qq密碼 發布:2025-02-07 04:01:51 瀏覽:11
買二手筆記本電腦看哪些配置 發布:2025-02-07 04:01:48 瀏覽:308
我的世界裡面什麼伺服器是建造的 發布:2025-02-07 03:51:48 瀏覽:189
不能連接到資料庫 發布:2025-02-07 03:47:00 瀏覽:45
安卓手機如何設置翻屏動畫 發布:2025-02-07 03:46:18 瀏覽:594
利基型存儲器什麼意思 發布:2025-02-07 03:43:58 瀏覽:556
安卓讀寫許可權在哪裡 發布:2025-02-07 03:29:21 瀏覽:36
釘郵怎麼找回密碼 發布:2025-02-07 03:16:40 瀏覽:81
比特幣錢包源碼 發布:2025-02-07 03:16:39 瀏覽:101
飢荒如何轉移伺服器 發布:2025-02-07 03:14:42 瀏覽:4