當前位置:首頁 » 編程軟體 » vs編譯32位程序

vs編譯32位程序

發布時間: 2025-08-07 00:14:48

Ⅰ 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)vs編譯32位程序擴展閱讀:

如果項目引用有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的原因。

熱點內容
java返回this 發布:2025-10-20 08:28:16 瀏覽:585
製作腳本網站 發布:2025-10-20 08:17:34 瀏覽:881
python中的init方法 發布:2025-10-20 08:17:33 瀏覽:574
圖案密碼什麼意思 發布:2025-10-20 08:16:56 瀏覽:761
怎麼清理微信視頻緩存 發布:2025-10-20 08:12:37 瀏覽:677
c語言編譯器怎麼看執行過程 發布:2025-10-20 08:00:32 瀏覽:1005
郵箱如何填寫發信伺服器 發布:2025-10-20 07:45:27 瀏覽:250
shell腳本入門案例 發布:2025-10-20 07:44:45 瀏覽:108
怎麼上傳照片瀏覽上傳 發布:2025-10-20 07:44:03 瀏覽:799
python股票數據獲取 發布:2025-10-20 07:39:44 瀏覽:705