2010-06-04 48 views

回答

3

如果你是一個Windows系統上,你可以使用

#include <windows.h> 

這些數據類型是典型的Windows API datatypes

如果你在另一個平臺上,你可以使用typedef數據類型,但是很可能問題會持續下去,你將不得不移植大部分代碼。

8
typedef uint32_t* LPDWORD; 
typedef uint32_t DWORD; 
// etc 
+0

感謝您的回覆,對於LPSTR,LPBYTE? – 2010-06-04 13:15:28

+1

'typedef char * LPSTR; typedef unsigned char * LPBYTE;' – 2010-06-04 13:34:37

+0

非常非常感謝你 – 2010-06-04 15:12:19

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上運行。

+0

其實這些類型都是在windev.h中定義的。包括windows.h給你的類型,但你會得到很多額外的聲明,你不需要。 – harper 2010-06-04 13:53:00

+0

@harper如果你不調用函數,我不明白爲什麼你需要這些類型。 – 2010-06-04 13:59:15

+0

當然,您必須包含所有頭文件以獲取適當的原型。但是可以隨意使用BYTE類型來獲取與操作系統或任何特定功能無關的字節。 但Suriyan Suresh只是要求支持這些類型。沒有失蹤的函數原型被注意到。因此,查看那個包含定義的文件是不太方便的。 – harper 2010-06-04 16:29:48