導航:首頁 > 源碼編譯 > vs32位系統編譯x64程序

vs32位系統編譯x64程序

發布時間:2023-05-17 18:40:20

1. vs有沒有32位與64位的區別

visualstudio沒有專門的64位版,但32位版可以在64位系統上面正常使用。

由於操作系統內存分配的不同,導致軟體開發過程中,需要編譯不同版本的軟體。

編譯程序根據需要選擇不同的編譯環境,x86和win32為32位程序,x64為64位程序,可以選擇不同的編譯條件形成不同位的軟體。

代碼中的基本數據類型,會根據操作系統的位數來分類內存大小。

如int型在32位操作系統下為4位元組,在64位系統下為8位元組。

因此在64位上對int型數據操作,編譯生成32位的程序,有可能導致int型越界,軟體出現問題,32位的程序在64位操作系統上運行,由於64位操作系統的定址和偏移問題,也有可能導致程序在運行過程中,計算結果與32位系統不一致。

64位操作系統理論上能夠箭筒32位和64位軟體,32位操作系統不能運行64位程序。

在vs中,x64生成的程序只能在64位系統中運行。如果用戶用的是32位的系統(比如XP),則運行不了程序。

x32生成32位程序,由於64位系統也能運行32位的程序,所以這個選項跟AnyCPU一樣可以同時運行在兩種系統中,但效率沒有AnyCPU高,因為64位的軟體跟CPU交互的數據要比32位的接近大一倍。

所以當要把項目代碼轉移到另一台計數機時,就要考慮這個問題。假如原來選擇的目標平台是x64,新電腦的系統是32位,當你按F5調試運行時,則跑不起來,這時把目標平台改成AnyCPU或者x32就能解決了。

(1)vs32位系統編譯x64程序擴展閱讀:

如果項目引用有32位的dll(c++編譯生成的),則只能選擇32位平台,否則也會報錯,整個項目要保持一致。

在項目調試的過程中,可以看到32位與64位程序載入的dll不同。

32位程序從system32中載入dll;而64位程序從syswow64中載入dll。

64bit程序在x86-64處理器上並不會帶來明顯的性能提高,它只是增加了處理器的定址范圍,可以使用更大的內存。而對於VS這種並非內存敏感的程序,並不十分需要遷移到64bit下。

另外,還有一個歷史原因,就是微軟一直沒有完成64bit下的JIT調試器的EditandContinue功能,這是因為64bit的JIT是C++團隊做的,和原生CLR團隊的32bitJIT有很多不同。

如果微軟推出了64bit的VS,那麼調試的體驗會受到限制,這也是為什麼微軟一直以來沒有推出64bitVS的原因。

2. C++程序32位編譯成64位程序,有些項目無法設置為X64

試試先把各項目的 x64 刪除,然後再創建

3. vs2019win32項目轉成win64

vs2019win32項目轉成win64:在工程跡汪掘屬性設置中作如下修改:
1. 在「C/C++」——「預處理器」中姿核將WIN32改為_WIN64,並且放在最前面,這樣才確保鏈接的是64位的Windows SDK。
2. 在「鏈接器」——「高級」——「目標計算機」將「MachineX86(/陵褲MACHINE:X86)」改為「MachineX64 (/MACHINE:X64)」。
3.代碼中有些地方需要修改:
(1)'static_cast' : cannot convert from'void (__cdecl CWindowTip::* )(UINT)' to 'void (__cdecl CWnd::* )(UINT_PTR)' E:2015prog2-.cpp 128 1 AutoTargetDetection

4. 怎麼把vs2008創建的32位的程序改為64位的

點擊對應的項目,右鍵-》屬性中:選擇「生成」頁簽,「目標平台」選擇「X64」

5. 如何編譯64位dll程序,有幾種情況,在32位XP上用VC++6.0或者VS2010該怎麼編譯64位的dll。

在64位的操作系統上用vs軟體編譯的dll默認就是64位。
在32位XP上用VC++6.0編譯64位的dll,需要安裝sdk(最新版本是sdk2003),在開始菜單——sdk——open build environment window——windows server 2003 64-bit build environment——set win svr 2003 x64 build env進入命令行,從命令行調用msdev,將vc選項里的include和lib的第一個默認路徑設為sdk目錄下64位頭文件和庫的路徑,編譯出的dll似乎就是64位的了。這個是從網頁上看到的,沒實踐過。
在32位XP上使用vs2010就簡單多了,新建一個項目(解決方案),加入代碼,設置X64,編譯生成即可。

6. 將win32的程序編譯為x64,其中win32用到了kernel32.dll這樣的dll,請問在x64位中可以繼續使用嗎

kernel32.dll, user32.dll, netapi32.dll 等庫在 64 位 windows 系統、64 位應用程序中依然可以使用,這是因為針對 32 位程序和 64 位程序,windows 提供了兩個不同的版本,分別位於系統目錄 system32 和 syswow64 下面,雖然兩個目錄下的庫文件使用了相同的名字,但實際上是不一樣的。

7. 32位系統編譯的程序能在64位下運行嗎

在32位的系統不能運行64位的程序,在64位的系統上可以運行32位的程序。
在32位下開發編譯和在64位下開發編譯是沒有區清余別空早的,重點在於生成的時候的選項,生成什麼平台軟體。斗正雀是X86還是X64還是anycpu

8. 32位機能用64位編譯器編譯源程序嗎有64位的VS了么

32位系用64位,只有在夢里才可以,在64位系統下搞32位,那是客觀存在的。

9. 32位的電腦怎麼編譯64位程序

方法/步驟

1、VS2010新建的VC++項目默認的組件平台是32位。

10. 32位編譯器可以編64位程序嗎

VS不可以,不提供交叉編譯器
gcc可以
但是需要自行編譯(至少我不知道是否有人提供),把host設為i686-w64-mingw32
target設為x86_64-w64-mingw32 !

閱讀全文

與vs32位系統編譯x64程序相關的資料

熱點內容
imac混合硬碟命令 瀏覽:277
沈陽用什麼app租房車 瀏覽:857
00後高中生都用什麼app 瀏覽:237
戴爾塔式伺服器怎麼打開獨立顯卡 瀏覽:807
醫療程序員招聘 瀏覽:597
住宿app可砍價是什麼意思 瀏覽:133
java跳出語句 瀏覽:55
javastring個數 瀏覽:928
人工免疫演算法應用 瀏覽:79
有什麼app能收聽俄羅斯廣播電台 瀏覽:34
2015考研紅寶書pdf 瀏覽:443
程序員幾月跳槽合適 瀏覽:444
液壓油可壓縮嗎 瀏覽:946
源泉cad加密文件 瀏覽:127
銀河v10驅動重編譯 瀏覽:891
電腦上文件夾右擊就會崩潰 瀏覽:691
右美維持演算法 瀏覽:940
php基礎編程教程pdf 瀏覽:220
穿越之命令與征服將軍 瀏覽:353
android廣播重復 瀏覽:834