我正在嘗試爲諸如win32,mac os,linux,iOs等平臺創建一個抽象層。我想要這個動態鏈接。在不支持的平臺上,它不應該成爲一個問題,因爲從我看到的所有可以編譯爲動態庫的內容都可以編譯爲靜態庫,並且對代碼的影響最小。關於C++命名約定的問題
現在去的這點:
我創建了一個名爲IThread接口和一個名爲CThread類。我使用了一個名爲CreateThread的函數,該函數使用extern「C」定義,以便能夠將其導出並在庫外調用它。這裏的問題是,在win32中,例如已經有一個名爲CreateThread的函數,因此我得到一個鏈接器錯誤。我瞭解錯誤以及它出現的原因,但我不確定避免這種情況的好方法。我並不喜歡使用奇怪的命名,像CreateQtThread一樣使用qt。
我的另一個想法是創建一個創建CThread實例的線程管理器/工廠,但我不確定這將是一個好主意。
你們對此有何看法?我在問,因爲我不想衝這樣的重要組織問題。
非常感謝您
你的問題是什麼?你明白錯誤,你不想重命名你的函數,所以你想知道我們對此有何看法? –
是的,如果可能的話,我希望有更多經驗的人員就此發表意見。謝謝。 – Sanctus2099
是否希望您的抽象層僅用於C++或其他語言(如C)?你是否想從給定的C++編譯器使用它(並且如果你需要改變編譯器,則重新編譯你的抽象層)或者oyu是否需要「一旦編譯一次就可以編譯C++」? – ysdx