2017-08-10 63 views
0

我們有一個大模式(數百個全局元素,數千個全局複雜類型)。當我們使用Liquid Studio Data Binding工具從模式生成C++數據綁定時,生成的項目超出了64k個符號(65535)的DLL導出符號限制。事實上,它超過了極限,所以我們不得不將模式分解成6個不同的模式(有一些重複的複雜類型),只是爲了將其分解得足夠多,以便每個項目都停留在符號導出限制之下。LiquidXML生成的代碼超過DLL導出限制

有更好的選擇嗎?有什麼我可以在Liquid Studio中配置,以便它不會嘗試導出這麼多的符號?我在完全相同的模式上使用了另一個工具,結果得到的代碼沒有這個問題,因爲它大多生成與工廠類的抽象接口來創建所需的對象。因此,唯一需要導出的符號是工廠創建方法。現在我們對LiquidXML數據綁定感到困惑,所以如果我們可以避免每次有更新時分割模式的所有手動工作,它真的會很好。

回答

0

在XML數據活頁夾嚮導中,您可以選擇您感興趣的根元素,然後生成器將忽略其餘部分。然而,這可能非常有效,具體取決於架構的結構,您可能會發現大部分架構仍然可能通過少量的根元素訪問。

然後可以從命令行重新運行生成的.xdbproj文件,例如,在自動構建。

Liquid XML Data Binder Select Elements

如果這個方法不適合你,請張貼鏈接到架構,你有興趣的根元素,我會考慮它的更多細節。

+0

這基本上是我們已經做的,除了自動腳本。我試圖找到一個解決方案,不涉及打破架構或不得不建立多個庫。 – Moohasha

+0

不幸的是,我無法在線發佈架構。 – Moohasha

+0

我在猜測它的第三方模式,如果你能讓我知道哪一個模式,或者如果你可以通過支持票轉發到液體技術,這將有所幫助。 – Sprotty