0

我们有一个非常大的模式(数百个全局元素,数千个全局复杂类型)。当我们使用 Liquid Studio 数据绑定工具从架构生成 C++ 数据绑定时,生成的项目超过了 DLL 导出符号的 64k 符号限制 (65535)。事实上,它完全超出了限制,以至于我们不得不将模式拆分为 6 个不同的模式(具有一些重复的复杂类型),以便将其分解到足以使每个项目都保持在符号导出限制之下。

有更好的选择吗?有什么我可以在 Liquid Studio 中配置的东西,这样它就不会尝试导出这么多符号吗?我在完全相同的架构上使用了另一个工具,并且生成的代码没有这个问题,因为它生成的大部分是带有工厂类的抽象接口来创建所需的对象。因此,唯一需要导出的符号是工厂创建方法。现在我们有点坚持使用 LiquidXML 数据绑定,所以如果我们可以避免每次有更新时拆分模式的所有手动工作,那就太好了。

4

1 回答 1

0

在 XML Data Binder 向导中,您可以选择您感兴趣的根元素,然后生成器将忽略其余部分。这可能非常有效,但是,根据模式的结构,您可能会发现大部分模式仍然可以通过少量的根元素访问。

然后可以从命令行重新运行生成的 .xdbproj 文件,例如在自动构建中。

Liquid XML 数据绑定器选择元素

如果这种方法不适合您,请发布您感兴趣的架构和根元素的链接,我会更详细地研究它。

于 2017-08-14T06:55:16.603 回答