我想了解一個需要包含頭文件的SDK。有在頭文件,上面寫着編譯器錯誤C2632:類型1,然後是類型2是非法的
typedef long long SomeIdentifier_SInt64;
和
typedef unsigned long SomeIdentifier_UInt64;
編譯器(MSVC++ 6)兩個語句是抱怨,這是非法的。如果是這樣,這是否意味着SDK已損壞?我嚴重懷疑這是事實。這在其他編譯器中是否合法?有沒有辦法解決?
謝謝。
我的環境是MS Windows XP Pro 32位。
不幸的是,我不能替代我在工作中使用的軟件。我可以將頭文件中的long long替換爲__int64嗎?這被認爲是可接受的做法? – krebstar 2009-02-20 04:02:46
取決於您對「可接受」的定義。大多數人不認爲VC6是可以接受的,但是如果用__int64作品替代很長的話,那麼它就像它將要獲得的那樣是可以接受的。 但是,一旦VC6實際上或多或少是正確的。 long long不是一個有效的C++類型。它存在於C中,而不是(在C++中) – jalf 2009-02-20 04:17:17
__int64 * should *可以工作。在x86上,long long是一個64位整數。 __int64簡直就是微軟對該數據類型的不可移植名稱。 – jalf 2009-02-20 04:23:26