導航:首頁 > 源碼編譯 > 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程序相關的資料

熱點內容
如何在文件夾中顯示頁碼 瀏覽:354
雲伺服器登不上qq 瀏覽:417
程序員四級工程師 瀏覽:715
薄荷app怎麼把體重清零 瀏覽:644
草料二維碼加密怎麼製作 瀏覽:851
04s519隔油池圖集pdf 瀏覽:242
程序員搞測試 瀏覽:552
蘋果app應用隱藏了怎麼辦 瀏覽:660
PDF調取 瀏覽:199
獨立柱加密需要什麼條件 瀏覽:814
php培訓出來找不到工作 瀏覽:106
小程序克隆源碼 瀏覽:448
python整數整除負數 瀏覽:880
遮天用什麼小說app看 瀏覽:645
什麼可以發類似朋友圈的app 瀏覽:495
cmd查找命令行 瀏覽:661
如何申請域名需要虛擬伺服器 瀏覽:497
氣體流量的演算法 瀏覽:634
大族加密狗滑鼠 瀏覽:23
php資料庫登錄界面 瀏覽:657