我有一個使用LPDWORD,DWORD等的C++程序。當我使用GCC編譯時,它會引發錯誤。我如何處理GCC中的LPDWORD,DWORD,LPBYTE和LPTSTR?在GCC中處理LPDWORD,LPSTR
3
A
回答
3
如果你是一個Windows系統上,你可以使用
#include <windows.h>
這些數據類型是典型的Windows API datatypes。
如果你在另一個平臺上,你可以使用typedef
數據類型,但是很可能問題會持續下去,你將不得不移植大部分代碼。
8
typedef uint32_t* LPDWORD;
typedef uint32_t DWORD;
// etc
2
所有這些類型定義都是微軟版本的GCC的typedefs。如果你的程序中只包含了其中的一些,你可以添加一個頭文件將它們轉換成GCC的語義。
在微軟的數據類型的更多信息,請參閱此MSDN頁:
http://msdn.microsoft.com/en-us/library/aa383751(VS.85).aspx
5
這些都是在Windows頭文件WINDOWS.H定義的類型。如果你的代碼使用這些類型,它可能也會使用很多Windows特定的功能,因此將不能移植。這並不是說你不能用GCC編譯這樣的代碼 - 你可以用MinGW port,但這隻能在Windows上運行。
相關問題
- 1. GCC預處理器
- 2. 在Python 3 LPSTR
- 3. gcc如何處理-Wtype-limits?
- 4. .NET中的LPSTR(Char *)
- 5. GCC中的PRIuPTR預處理器錯誤?
- 6. 處理__attribute__的((弱))是在鐺和gcc
- 7. Concat LPSTR in C
- 8. 自定義gcc預處理器
- 9. GCC ARM彙編預處理宏
- 10. 使用GCC預處理C代碼
- 11. GCC轉儲預處理器定義
- 12. GCC預處理器內聯函數名
- 13. freescale iMX6q ARM處理器的gcc選項
- 14. GCC預處理器刪除註釋
- 15. 處理gcc的noexcept類型警告
- 16. gcc的預處理器和粘貼
- 17. GCC comp_except_specs和異常處理/解析
- 18. gcc處理alloca有什麼用?
- 19. 爲GCC運行「輕」預處理器
- 20. GCC預處理typedef名更換
- 21. 在C預處理器中比較字符串的方法? (GCC)
- 22. 在gcc中已經定義了哪些C預處理器宏?
- 23. 在GCC中調用預處理器VARIADIC MACROS
- 24. 在GCC的_Pragma運算符中粘貼預處理器令牌
- 25. gcc預處理器:如何在參數中轉義引號
- 26. (C++/WinAPI)反轉LPSTR
- 27. 我該如何修改LPSTR?
- 28. 如何轉換CString的LPSTR
- 29. 搜索LPSTR字符串
- 30. 其中-x用於通過GCC進行預處理?
感謝您的回覆,對於LPSTR,LPBYTE? – 2010-06-04 13:15:28
'typedef char * LPSTR; typedef unsigned char * LPBYTE;' – 2010-06-04 13:34:37
非常非常感謝你 – 2010-06-04 15:12:19