0
我的模塊將用於x86和x64環境。我有一個頭文件,包含帶有以下簽名的導出函數。我應該使用什麼類型來定義接口中的緩衝區大小?
HRESULT GetObject(DWORD key, void* pValue, MY_SIZE_T cbSize);
我應該使用什麼類型的類型MY_SIZE_T。
使用
std::size_t
來描述由pValue指向的對象的大小。但是std :: size_t在x86和x64平臺上有所不同。我不確定它在界面級別上沒問題。使用具有固定寬度的
DWORD
。但DWORD在x64平臺上可能不夠大。雖然很少有超過2^32字節的結構。
考慮使用'uint64_t',雖然它可能未在某些平臺上定義 –
您打算一次編譯此代碼並在兩個平臺上使用相同的*二進制代碼*嗎?我會想象,在size_t的大小成爲問題之前,你會遇到很多其他問題。 –
@KerrekSB Nope。我將在兩個x86平臺上編譯代碼,一個用於x64。 –