我正在使用VS 2008.我在32位編譯器中編譯我的C++代碼。我正在使用DialogBoxParam創建一個GUI並且它的工作正常。但是相同的代碼在64位編譯器中編譯,我得到的錯誤是C2664: 'DialogBoxParamA' : cannot convert parameter 4 from 'BOOL (__cdecl *)(HWND,UINT,WPARAM,LPARAM)' to 'DLGPROC'
。請幫助我將C++代碼從32位轉換爲64位
1
A
回答
1
由於您正在32位機器上編譯,因此轉移到64位機器的常見問題是32位平臺上的long和int都是32位,而long是64位平臺上的64位和int是32位。如果您正在使用指針引用或字節操作,則可能會在調用函數時造成困難。
您需要檢查涉及的實際處理。
6
如果您檢查例如this DLGPROC
reference你會看到它應該返回INT_PTR
而不是BOOL
。
問題來自於BOOL
是int
的類型別名,它在使用Visual Studio編譯器的32位和64位平臺上都是32位。另一方面,INT_PTR
在64位系統上爲64位,這使得您在返回類型中不匹配。
更改爲正確的INT_PTR
返回類型對話框功能的,它應該在都 32位和64位系統上運行。
相關問題
- 1. 將非託管C++代碼從32位轉換爲64位
- 2. 如何將32位VBA代碼轉換爲64位VBA代碼
- 3. 將32位斐波納契nasm代碼轉換爲64位
- 4. 將Excel VBA 32位代碼轉換爲64位
- 5. 將32位轉換爲64位
- 6. 將32位代碼編譯爲64位
- 7. 32位或64位?使用C代碼
- 8. 將64位解碼的文件轉換爲32位並將其改寫爲C#
- 9. 將SteamID轉換爲32/64位SteamID Swift
- 10. 代碼從32位移植到64位
- 11. 從64位代碼訪問32位DLL
- 12. 在Python中將工具從32位轉換爲64位
- 13. 將Excel宏從32位轉換爲64位
- 14. 從32位變爲64位
- 15. 如何編寫32位/ 64位可轉換代碼?
- 16. 如何轉換爲32位整數爲64位值在C
- 17. 在32位PHP安裝中將64位整數轉換爲32位?
- 18. 簡單的32位到64位轉換?
- 19. 在Windows 7 64位機器上將32位exe轉換爲64位exe
- 20. 運行32位和64位java代碼
- 21. 如何將32位NTDLL結構轉換爲64位結構?
- 22. 將32位.def文件轉換爲64位
- 23. 將32位非託管VC++項目轉換爲64位
- 24. 將32位對象轉換爲64位對象
- 25. 隱式轉換將64位縮短爲32位
- 26. 如何將32位time_t值轉換爲64位time_t
- 27. 如何將64位.deb文件轉換爲32位.deb文件
- 28. 將32位指針轉換爲64位整數
- 29. 如何將32位編譯二進制轉換爲64位
- 30. 使用PDO從64位轉換爲32位的整數
我已經做出了這些更改。仍然我得到相同的錯誤 –
如果「這些更改」是指特定的答案,請將評論添加到該答案,而不是問題。我認爲你指的是約阿希姆的回答,如果你真的應用了他的改變,顯然你不會得到完全相同的答案。 – MSalters
是的,我提到Joachim的回答,我沒有得到任何解決方案 –