LiquidXML生成的代码超过DLL导出限制

时间:2017-08-10 13:37:22

标签: c++ dllexport liquid-xml

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

有更好的选择吗?我可以在Liquid Studio中配置一些东西,以便它不会尝试导出这么多符号吗?我在完全相同的模式上使用了另一个工具,结果代码没有这个问题,因为它生成了大多数带有工厂类的抽象接口来创建所需的对象。因此,需要导出的唯一符号是工厂创建方法。现在我们已经开始使用LiquidXML数据绑定了,所以如果我们能够避免每次进行更新时拆分模式的所有手动工作,那将非常好。

1 个答案:

答案 0 :(得分:0)

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

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

Liquid XML Data Binder Select Elements

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