作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
有一个多线程程序,可通过基于 COM 端口的通信和远程 (IP) 视频流与设备同时运行。该程序还使用OpenCV库来处理数据。
问题是它在没有任何信号的情况下关闭(既没有捕获运行时错误,也没有捕获任何其他错误;日志文件也没有任何有用的信息)。最顶层的应用程序错误事件处理程序已设置,但仍然没有任何程序崩溃的迹象。一段时间后它就会关闭。
最大的困难是它在我们所有的电脑上连续几天都能正常工作。但在客户电脑上失败,因此测试过程非常缓慢。客户位于不同的国家/地区(亚洲本地化,而我们的本地化是欧洲),但该程序是使用 Unicode 支持构建的。
到目前为止,我们已经对本地化问题和防病毒事件有了一些假设......但它没有给出任何结果。
该程序是使用 MinGW 4.4.x C++ 和 wxWidgets 2.9.3 编写的
任何有关可能来源的建议将不胜感激。
最佳答案
已解决。
问题出在我们使用的 OpenCV build 2.3.1 内部。函数 cv::imdecode(...) 使用 stdio.h 的 tempnam() 函数在解码期间生成临时文件。在 x86 Windows 系统下,此功能在临时文件的 32767 个新名称后失败。在 x64 Windows 系统下,它返回一些无意义的字符串,但它仍然有效。
所以我提出的解决方案是改变从我们的设备接收解码图像的方式。
感谢大家的评论。
关于c++ - 程序默默关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19491724/
我是一名优秀的程序员,十分优秀!