c 程式在xp系統為何無法執行?

時間 2023-01-29 19:10:07

1樓:金色潛鳥

不同的windows之間,有些東西是不相容的,名字相同的東西內容有差異,動態連結庫不同。

win10 是 64位機,xp是32位。 dev-c++ 編譯器 的適應性差於 ms vc++

你試用 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 檔案。

這樣,就可解決 在先進的作業系統版本上 編譯出 可用於 老版本 上的可執行程式了。

2樓:莊政警

那個提示的意思是:在這個庫裡找不到k32...這個函式。

你一定是用win7以後的系統寫的**,在win7以後的系統裡,微軟把原來在的部分內容移到了裡,那個提示裡的k32get...

就是這部分函式之一,同時微軟定義了個psapi_version巨集來識別版本,在舊系統使用,把以下**加入到你的**頭部重新編譯試試:

#ifndef psapi_version#define psapi_version 1#endif

#include

#pragma comment(lib, "

3樓:空間

有可能是win10和xp的設計不一樣,非靜態編譯的程式執行時都要呼叫動態連結庫dll,有可能是xp的dll設計不支援現在編譯器。你虛擬機器開win10的不就完了。

4樓:愛7喵喵喵

可能 2個系統設定是不一樣的。

非靜態的編譯程式,執行時都要呼叫動態連結dll的。

可能是xp不支援 現在的編譯器,因為太姥了。

你可以換成windows7試試。

或者 在虛擬機器看windows10

c++在xp下不能執行

5樓:匿名使用者

vs2008預設是引用。net framework 的,如果你裝了更高的版本那麼會自動使用更高的版本,而xp一般都是。

net framework ,如果你寫的程式有引用。net framework 3.

5的東西的話,在xp下是不能執行的,必須得把你的xp上的。net framework 升級後才能用。

但是一個c++程式是不大會引用。net framework 的吧?

是不是你搞錯檔案了?生成的程式是***exe檔案,而不是那個***後者是除錯用的exe,需要依賴vs才能使用的。

6樓:今晚打老虎經典影視

你別裝visual6++那個版本的xp不能執行建議 用dev-c++ 5 這個挺好用的 我現在就用的這個。

為什麼我c++程式都執行不了?

7樓:昔祖

樓主,程式編譯無error,可是有警告:m,s沒初始化。木有初始化就用變數是程式設計大忌,常常會顯示像這樣的編譯通過可是執行出錯的問題。

樓主以後要注意警告的處理。最好1個程式在寫完後即木有錯誤,也木有警告。

c++在xp系統裡總是出問題,求解。

用vs2013在win7下編寫的c++程式怎麼在xp下執行

8樓:匿名使用者

額外說明:(1)程式必須為dotnet 及以下版本。(xp只支援及以下版本,不支援dotnet

(2)用c#編寫的程式,無需進行如下設定,只要在目標機的xp中安裝相應的dotnet版本即可。

用vs2013在win7下編寫的c++程式在xp下執行的錯誤與解決。

1.在xp下執行報錯為:「不是有效的win32應用程式。」

解決方法:【配置屬性】-【常規】-【平臺工具集】,選擇「visualstudio 2013 (v120 xp)」。

注意:c#編寫的程式沒有該選項,如何解決c#的程式在xp下的執行,待解決。

2.將原動態編譯改為靜態編譯,否則報錯為:未找到。

解決方法:【配置屬性】-【c/c++】**生成】-【基本執行時庫】,由預設的「多執行緒除錯dll(/mdd)」,改成「多執行緒 (/mt)」,確定之後,重新編譯。

注意:網上說這一步需要根據你的當前工程屬性debug還是release來選擇「multi-threadeddebug (/mtd)」或者「multi-threaded (/mt)」,但我不論在debug還是release模式下,均選擇「多執行緒/mt」,均能正常執行。

3.【配置屬性】-【常規】-【使用mfc】,選擇「use mfc in a static library」(非mfc程式可無視)。

注意:我改了這一步後,編譯報錯,原因未知。

只要做前面1,2步,即可在xp下執行。

4.將你的工程中依賴的所有外部庫,都按照步驟1~3重新編譯。

注意第四步很重要。如果你只完成了前三步,編譯工程發現一大堆link錯誤,那就是你第四步沒有做完整的原因了。

一個專案使用的庫中如果存在不同版本的基本執行時庫,必然導致衝突。

如果你用到的第三方庫沒有原始碼,而且又不是用mtd或mt編譯的,很可能你就悲劇了。

5、網上說是還需在以下方面修改,未測試:

原文說:專案選單->專案屬性->連結器->系統->子系統->控制檯或視窗windows(根據你的專案型別選擇),第二項版本號設成。

xp不能執行c++因為不是有效的win32程式

9樓:匿名使用者

我的電腦也是xp的啊,也能執行c++啊,可能是你在運用時自己出了問題,沒注意吧,要知道,有的東西在c中可以執行,但是c++中執行出來就不一樣了!

麻煩採納,謝謝!

vs2012編寫的的c++程式不能在xp系統上執行,提示:不是有效的win32 應用程式,不是中毒,求高手解答。

10樓:匿名使用者

安裝啥都沒有用哦,微軟已經拋棄xp了,用vs2012開發出來的軟體不再支援xp了,以後各開發商開發出來的遊戲也不再支援xp了,

11樓:匿名使用者

vs2012是不支援xp的,原因是生成的exe會加入xp無法識別的新功能,不過。

微軟官方部落格給出的是將在秋季晚點的時候對vs2012的一個更新,可以使vs2012不使用任何其他的編譯器和庫就可以直接生成支援xp的應用程式,到時候只要下個更新就好了。

12樓:蟲蟲當家

64 win7的編譯器重新編譯,執行。

一般32程式可以執行在64位系統下,你的程式確認,有沒有問題?

13樓:veket的小號

要裝 .net framework

貌似 vs 2008 起 vc 預設採用c#的託管模式 給予 .net 的 cli 庫 不是 vc runtimelibrary

p系統連線無線提示網路受限,XP系統連線無線提示網路受限

xp系統連線上wifi卻受限而無法上網的原因有 1 wifi本身問題,可能wifi未正常連線,導致無法上網。2 路由器問題,可能路由器過熱或者損壞。3 可能寬頻欠費,導致無法上網。4 wifi名字包含中文,導致部分電腦無法連線上網。5 電腦系統問題,可能系統出現了問題,導致連線上了wifi卻無法上網...

xp系統下怎麼安裝sql資料庫,在XP系統下如何安裝資料庫?

如果安裝sql server 2000 的話要選擇個人版 如果安裝sql server 2005 的話要選擇開發版 只有出現掛起的現像才需要修改登錄檔 sql server安裝檔案掛起錯誤解決辦法 剛開始使用sql server 2000,就給了我一個下馬威。不過最終還是解決了。具體情況和解決方法 ...

怎麼關閉討厭的XP防火牆,XP系統防火牆無法關閉

開始 設定 控制面板 安全中心 可以關閉防火牆 關了之後若有提示 可以在安全中心的左邊有一項 更改安全中心通知我的方式裡取消 通知 開啟 控制面板 中的 windows防火牆 選擇 關閉防火牆 在網路上的芳鄰屬性的 本地連線屬性的 高階選單選項 控制面板了有 windows防火牆 開啟它,在它的 常...