簡體   English   中英

從32位移植到64位

[英]porting from 32 bit to 64 bit

我使用Visual C ++構建了Windows應用程序。 它正在構建並運行在32位窗口環境中。 現在我需要確保它適用於Windows Vista / 7 64位環境。 我需要考慮這個移植過程的所有事情?

這不是從32位移植到64位,只是在64位機器上運行32位代碼以確保它仍然有效。

這樣做的方法就是測試64位計算機上的所有功能,就像每次發布新版本時一樣,對吧? :-)

如果你真的想要移植它(即,將它編譯為64位可執行文件),第一步就是嘗試它。 您可能會發現它按原樣運行。 如果你嘗試它,我只會擔心移植問題,然后出現問題。

然后,只有這樣,我才會尋找原因。 否則可能會浪費精力。

在以x64模式構建項目之前。

  1. 包括項目所需的所有必要的64位dll
  2. 在鏈接器中包含庫文件 - 其他依賴項 - 配置屬性。
  3. 在C \\ C ++中添加必要的預處理器 - 預處理器 - 配置屬性。
  4. 啟用64位警告 - 編譯時編譯器顯示警告

防爆

  1. 將數據類型從int轉換為size_t可能會丟失數據
  2. 存儲指針地址
  3. 魔術沒有。

有關錯誤和警告的更多信息,請參閱以下鏈接,同時移植http://www.viva64.com/en/a/0065/

人們需要注意的是,如果您將普通舊數據(POD)存儲到文件中或通過IPC或套接字等將POD數據傳遞給其他應用程序。我們還有代碼假設4字節長並且還假設4字節指針。 不用說,我們刪除了這些時代錯誤。

編譯器通常善於發現其他類型的錯誤,即長到int轉換等。因此,通常只是注意編譯器警告並相應地更改代碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM