[問題描述]
1. 使用 CodySynthesis XSD, 產生 kml schema 的 C++ 程式碼。
2. 產生的程式碼在使用時, 發生以下錯誤:
[ogckml22.hxx]
const near_optional&
near () const;
near_optional&
near ();
錯誤為:
嚴重性 程式碼 說明 專案 檔案 行 隱藏項目狀態
錯誤 C2059 語法錯誤: '<parameter-list>'
錯誤 C2238 在 ';' 之前有未預期的語彙基元
[追查原因]
1. 如果沒有引用 windows.h 則不會發生問題,因此與 windows.h 的內容有關。
2. 在 VC 使用[移至定義],發現 minwindef.h 已經定義 near。
[解決方式]
使用 CodeSynthesis XSD 時, 增加參數
--reserved-name near
產生的程式碼會以 near_ 取代 near,就不會和 windows 定義的 near 衝突。
PS. OpenDRIVE 裏的 signals 和 Qt 的 signals 的衝突也以同樣方式處理。
No comments:
Post a Comment