2011-07-15 108 views
1

我有兩個dll模塊。模塊A和B「A」呼叫的功能「B」。並且「B」調用功能「A」來放置結果。 「B」依賴於「A」,「A」依賴於「B」。當我編譯(清潔)項目 - 我有一個問題。 (I必須刪除模塊依賴 - 評一些線 - 編譯 「A」 - 然後 「B」 然後取消註釋線,添加依賴性和再次編譯 「A」)C++編譯模塊依賴性問題。邏輯問題

模塊A:

callFuncmoduleB(PARAMS);

模塊B callFuncmoduleB

// Qt logic使用信號 - >插槽新建線程和Http請求。在完成的Http請求 - 解析它callPARSEFuncmoduleB;

模塊B callPARSEfuncmoduleB:

callSETRESULTFuncmoduleA(結果).....

模塊A:callSETRESULTFuncmoduleA

callsFuncModuleGUI並設置結果GUI

+0

Windows,C/C++? – themel

+0

頭文件應該解決這個問題。 – sharptooth

+0

Windows,C/C++?是 – Stepchik

回答

1

首先,你真的應該嘗試努力盡可能不產生循環依賴。有很多方法,哪一個最適合你取決於你的依賴的確切性質。

  • 合併兩個DLL到一個
  • 使用回調機制(函數指針,在B中定義的一些接口)來傳遞在運行時 例如依賴callFunctionInB(args, callbackInA)
  • -

如果MUST有循環依賴,你將不得不涉水進入工具鏈深一點,開始here。簡而言之,可以創建一個存根.LIB文件,您需要鏈接到一個DLL,而無需實際編譯該DLL。

參考:circular dependencies between dlls with visual studio

+0

你的答案是有用的。謝謝。 – Stepchik