從http://msdn.microsoft.com/en-us/library/windows/desktop/aa384242%28v=vs.85%29.aspx澄清:移植32到64位
使用UINT_PTR和INT_PTR在適當情況下(如果你不確定 無論他們是必需的,但更是在短短的 情況下使用它們沒有傷害)報價。不要將指針指向ULONG,LONG,INT,UINT, 或DWORD類型。
我可以安全地假設在現有的32位Codeline中將所有引用的DWORD轉換爲UNIT_PTR是安全的,沒有任何副作用?
是否還有其他推薦的指南來移植引用DWORD的32位代碼?
等等,不,你誤解了。不要將所有'DWORD'轉換爲'UINT_PTR'! – 2013-02-26 19:04:58
@MooingDuck:你爲什麼這麼認爲?你能解釋一下嗎? – Abhijit 2013-02-26 19:11:22
(1)只有在需要將指針存儲在整數類型變量中時才使用'UINT_PTR'。否則使用整數或指針。 (2)'UINT_PTR'有時候會是32位,有時候是64位,大多數情況下,你不需要它。 (3)由於它破壞了二進制的兼容性和可移植性,這取決於你如何完成你的IO,它可能會使你的數據不可移植。 – 2013-02-26 19:19:38