代码里加载数据路径为相对路径,调试运行没问题,直接运行exe,无法找到数据文件,所以报错。更改成绝对路径后或者将数据文件放到exe所在路径下,exe直接运行正常。

问题描述:最近做项目的时候,发现调用了opencv库的C++程序在VS2010上调试运行完全没有问题,但是一旦运行debug文件下的exe文件就显示debug error,具体报错如图:

虽然在调用opencv库的时候也遇到过这种问题,但是基本都是参数错误,指针问题,但是这次明明debug调试的时候完全没有问题,但是运行exe就出错了,

一直百思不得其解,后面在运行另外一个小程序的时候突然跳出了一个一样的bug,我才突然发现,居然是因为路径的问题!

我的项目程序需要加载一个模型文件,但是我的路径上一开始设的是相对路径,即直接放在工程目录下的。

在调试的时候我明明看到文件被加载了进来,所以也就没考虑过文件加载的问题。

后面通过逐一注释排除才发现居然是因为没把路径设成绝对路径,导致opencv函数在读取文件的时候找不到文件,读取进来的模型是空的。

然后我又把空的模型用于预测,于是就报了debug error的错。

之后把文件路径改成绝对路径就没有问题了。

所以,以后写程序的时候还是尽量多用绝对路径,不然真出错的时候连问题在哪都找不到!

这里顺便总结一下常见的opencv出这种错误的原因:

1.指针问题,指针越界,内存泄露之类的。

2.参数问题,很多时候opencv函数调用不准确,参数和函数不匹配。

3.路径问题,如果有读取文件之类的话这种得重点注意。

今天在win10上使用VS2010开发C#窗体程序遇到,在调试时遇到了“尝试运行项目时出错,无法启动程序……”的提示,非常不解,根据网上提供的方法有以下几种

(1)设置非托管

(2)修改文件夹权限

以上两种都不成功,我的用了下面的方法,图片为参考他人截图。

在运行VS程序的时候出现问题

正确的修改方法是,VS里边项目右键—>属性—>应用程序—>清单项改成“创建不带清单的应用程序”就好了。

之后再设置回来右键—>属性—>应用程序—>清单项改成“嵌入带默认设置的清单”就好了