我正在尋找使用 Windows API 構建應用程式。我正在使用 Go,它可以用來與 Windows API 互動(通過使用syscall包),但是,這對于這個問題并不重要。
我正在查看 API 以注冊新的同步根,這是使用函式完成的CfRegisterSyncRoot。
根據這個方法的簽名,它接受一個CF_SYNC_REGISTRATION但在這里我發現了一些讓我感到困惑的資訊。
根據定義,這個函式有一個名為的欄位StructSize,它表示結構的大小,但我沒有找到更多關于此的資訊。我應該在這里傳遞什么?
uj5u.com熱心網友回復:
您鏈接到的檔案說該StructSize成員是“結構的大小。”。這意味著它是用于在記憶體中存盤結構的位元組數。您可以通過sizeof(CF_SYNC_REGISTRATION)在 C 編譯器中求值來獲得正確的值,并且您應該在將該值StructSize傳遞給 Windows API 函式之前將該值寫入該成員。
這種事情在Windows API 中很常見。我認為這是一種機制,允許 Windows 偶爾向其結構添加新成員,而不會破壞與不了解新成員的舊代碼的兼容性。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/375530.html
