c++ - 未在 VS2017 中加载的符号文件在 JAGPDF 中仅发生 10% 的时间
问题描述
我找不到这个问题的解决方案。我有一个非常简单的程序来使用 JAGPDF 生成 PDF。如果我从 Visual Studio 打开程序(相同的输入,相同的参数),它会在 90% 的时间内无错误地运行到最后,但有时它会抛出一个异常,告诉我没有为 jagpdf-1.4.dll 加载符号
如果我直接运行可执行文件,90% 的情况下它会正确创建 PDF,而 10% 的情况下会创建无法打开的损坏的 pdf。我怎么解决这个问题?
编辑:我放了一个我得到的错误的截图,它很难重现,因为程序在大约 90% 的时间里正常运行,所以我必须多次按下 build 直到它崩溃......
编辑 2:由于该错误似乎来自库,(我已经向他们发送了一条消息报告它,但怀疑他们会对此做些什么,因为上一个版本是几年前的)。
我通过使用 try 和 catch 将函数包装在一个循环中解决了这个问题,如果第一次失败,则捕获异常并再次尝试该函数直到它通过。我设置了 10 次的限制,它可以在终止之前运行循环。
当时的想法是,由于事件似乎在统计上是独立的,因此循环将其失败的机会从 0.1 减少到 0.1^n,其中 n 循环数。
所以现在程序崩溃的概率是 0.0000001% 而不是 10%。
有了这个修复,我很高兴报告这周数据没有失败。
谢谢大家指出错误的方向。
解决方案
听起来好像您在使用的 PDF 库中发现了一个错误。您必须向 PDF 软件提供商提交错误报告。希望他们可以为您提供支持。
推荐阅读
- python - 如何使用 pygame/pytmx 加速或优化用于碰撞检测的循环?
- ssl - 如何解析这种 x509 SSL/TLS 证书格式?
- keras - 我可以在组合(train+dev)集上训练微调模型,然后用测试集进行评估吗?
- jquery - Laravel:如何检查数据表中的数据是否有效?
- reactjs - 如何在 IIS 上的一个网站上提供两个文件夹(React 构建文件)?
- r - 我如何为随机森林应用交叉验证
- cordova - 离子原生文件插件:file.readAsArrayBuffer() => Uncaught RangeError: Array buffer allocation failed
- vue.js - 何时以及如何将 polyfills 添加到 vue-cli 应用程序
- javascript - 从 Angular 应用程序中的正文脚本将 css 样式加载到正文标记中
- php - 如何使用ajax通知多个用户帐户