我被要求解决在尝试将绘图导出到 PDF3D 时出现的用 Visual C++ 编写的 CAD 应用程序的内存使用问题。
导出特征对于简单模型或仅复杂模型的一部分表现良好,但对于整个复杂模型则不然。
我们正在使用 U3D sourceforge 项目来创建 U3D 对象;在我们将其插入 PDF 之后。有问题的是对象创建部分。
U3D sourceforge 项目是一个用 C++ 构建的库,也可以在 C++ 中使用,自 2007 年以来就已经死了,文档很差,它的示例集合还远远不够!在项目的 TODO 列表中也声明它有内存问题!
所以我被要求从两个方面来解决这个问题:
对 U3D 代码进行维护。
更改应用程序与 U3D 库交互的方式。
他们还说边 2. 最好,因为它在我们的控制之下。
在尝试解决问题时,我得到了两个结论:
我强烈怀疑 U3D 方法 EncodeX 是造成内存误用的原因。
对于应用程序与库的交互方式(更改压缩参数、标志等),我尝试了很多小事情的改变,每次结果都是内存过度分配。
所以问题是:继续使用这个库值得吗?它的代码阅读起来并不愉快……或者出于相同目的查看其他库可能是个好主意?我没有探索它们,但我正在认真考虑切换到 VCGlib 或 libharu ......如果你知道这很好,请提出其他建议。
其他选择是:使用 Visual Technologies PDF3D 导出器,它的成本不可接受,或者开发我自己的 U3D 导出器实现,它的缺点是 U3D 功能集非常有限,而且它可以nt 为预期的最后期限做好准备。因此,将这些选项视为禁止。
我真的需要帮助来决定什么是最好的。
在此先感谢,塞尔吉奥