我正在閱讀基本的COM,並且遇到了本書第2章中的一個宏'BASE_OFFSET',我並不真正瞭解它的語法或爲什麼這樣做。BASE_OFFSET來自Essential COM的宏
#define BASE_OFFSET(ClassName, BaseName) \
(DWORD_PTR(static_cast<BaseName*>(reinterpret_cast<ClassName*>(0x10000000))) - 0x10000000)
任何人都可以解釋這個宏以及我們如何使用它?實際上,這本書使用了這個宏,但由於我不太瞭解它,所以我沒有看到它的實際用法。非常感謝你提前。
謝謝你編輯我的問題。 – istudy0
順便說一句,另一個標準的Windows宏[FIELD_OFFSET](http://msdn.microsoft.com/en-us/library/windows/hardware/ff545727(v = vs.85).aspx)可以抵消命名字段的結構。 – Oleg
感謝您的評論。 – istudy0