•出现时,是因为Opencv不是本工程的软件,在用到时出现须知道它的保存途径。
需在“我的电脑”图标处右键属性----高级---单击环境变量----双击PATH行--- 输入需要的软件路径D:\opencv1.o\OpenCV\Bin。
•出现无法打开包括文件:“ *.h”: No such file or directory时,可能是以下原因:首先,我想我们要确定的是头文件名写错了没有?其次,如果是我们自己写的头文件,我们一定要写成 #include" *.h "这种形式.•出现找不到cvErode标识符时,说明是头文件没有定义。
可以把光标放在cvErode处,右键“转到定义”,查看它是在cv头文件中,然后在头文件处定义文件名#include"cv.h"即可。
•出现”无法解析的外部符号_cvReleaseImage”的错误时,说明是配置环境的文件不齐全。
在项目---cvision属性--配置属性--连接器--输入--附加依赖项--把库文件名cv.lib highgui .lib cxcore.lib cvcam.lib输入。
•出现无法打开文件“highgui.obj”,只要在项目---cvision属性--配置属性--连接器--输入--附加依赖项--把库文件名cv.lib highgui .lib cxcore.lib cvcam.lib输入就可以了。
•出现无法打开文件“strmbase.lib”时,查看电脑中有的是strmbasd.lib cv.lib highgui.lib而不是strmbase.lib cv.lib highgui.lib。
在配置环境中改过来就可以了•出现无法解析的外部符号_IID_IMediaEvent无法解析的外部符号_IID_IMediaControl、1>cvisionDlg.obj :error LNK2001:无法解析的外部符号_IID_IGraphBuilder无法解析的外部符号_CLSID_AVIDec无法解析的外部符号改_CLSID_AviSplitter无法解析的外部符号_IID_IBaseFilter”错误时,是缺少striimds库文件的缘故,通过“我的电脑”搜索得到striimds的存放途径为D:\DXSDK\Lib,在库文件中添加此路径,再在附加依赖项中写成cv.lib highgui.lib cxcore.lib cvcam.lib strmiids.lib,即可。
(第1个程序调试时,在库文件处已添加路径)(/showthread.asp?threadid=3472)•出现无法打开文件“ipl.lib”错误时,由前面的经验知道,这种情况是没有添加相应的库文件,而我在“我的电脑”中搜不到ipl.lib库文件,所以没办法添加相应的路径到库文件中,参考卢坚学长的报告第8页的第8个问题知道,在依赖文件处把ipl.lib删除,就可以了。
(但是删除库文件后对程序的功能是否有影响呢?通过询问学长,知道删除库文件对程序的功能没有影响,且只要程序能够运行成功,功能都是一样的。
还知道在依赖项处多添加库文件对程序的运行是没有影响的,但少添加就因为缺少文件而不能运行。
)以上一些需要注意的问题•在依赖项处添加库文件时,每个库之间用空格隔开,为一个空格键的位置。
空格太大也会使程序不能运行;(如果第1次添加时有差错,以后的每一次都是如此。
这种情况需特别注意)•若打不开文件时,不要盲目的添加,先看它的后缀是.lib(库文件)、还是.h (包含文件),再在相应位置添加文件的路径;•注意各文件名的拼写,若写错了就会提示“无法打开此文件”的错误;•添加库文件时,要在选项菜单和工具菜单下同时添加。
•出现‘Date‘follow by‘Void is illegal(did you forget a‘;’?)解决方法是:在类后,主函数void main前加‘;’•出现‘function—style cast‘:illegal as right side of’.‘oprator解决方法为:因为构造函数和析构函数是被自动调用的,当我们不定义时,系统默认。
但是当我们定义时,不管他们的函数体是否为空,都应该把‘{}‘写上。
•出现‘没有找到MSVCR80D.dll,因此这个应用程序未能启动。
重新安装应用程序可能会修复此问题‘解决方法为:•微软官方:在项目的“属性|配置属性|清单工具|常规”中的“使用FAT32解决办法”选择“是”(默认为“否”),重新生成项目即可解决问题。
该方法是唯一真正针对问题所在而提出的解决方法,使清单工具可以正确更新。
(此方法是官方解决方法,也比较方便,推荐,注意:一定要先配置这个选项,然后再编译工程,要不然还是不好用:)•找到你的工程的文件夹,如(myproject),找到其下的myproject\myproject\Debug\ myproject.rec,把它删掉(删掉整个Debug目录也可以),重新编译!(慎用!!!!)•由于这是在链接动态运行库出现的问题,所以你可以选择代码生成的连接方式为/MTd而非/MDd,不用这些DLL文件从而避免问题的出现。
该方法有一个很显然的缺点:适用范围有限,并且也不是我等提倡的解决问题的方式,不推荐该方法。
•既然跟FAT32系统有关,那么我们可以选择在NTFS文件系统中开发从而避免该问题,此方法同上,也是采用的回避问题的方式,不为我等提倡。
•既然问题是在更新嵌入的清单文件时发生的,由于FAT32的原因而未能更新嵌入的清单文件,于是我们有如下两种解决方法:(1)不启用增量链接。
在项目的“属性|配置属性|链接器|常规”中的“启用增量链接”选择“否”。
此方法阻断了问题产生的源头,其每次生成exe文件时都直接嵌入清单文件,而不是默认的根据时戳而决定是否更新清单文件。
(2)不嵌入清单文件。
在项目的“属性|配置属性|清单工具|输入和输出”中的“嵌入清单”选择“否”,从而在生成exe文件时附随生成一个清单文件(默认情况下,其文件名为exe文件的全名加上“.manifest”),避免了嵌入清单文件可能失败的问题。
在程序运行时,会用到该清单文件。
显然,这种方式使可执行程序产生了更多的外部依赖,不推荐。
•实验6的问题为什么不直接在image上操作?那个黑色的窗口是干嘛用的?拷贝的原版是那个黑框还是image?12.出现错误时,有可能是没有包含文件。
13.出现错误时,可能是因为if语句后面多了一个“;”。
14.出现使用了未定义类型“teacher”错误时,是因为在编译时,编译器不知道提前说明的东西是什么,也就是说编译器不承认我们事先声明的类。
我们要在一个类中应用另一个类,得把那个类定义在前面,或者在应用时把类定义成指针形式。
(好像又不是这样的解决方法)但值得注意的是在用前一定要声明。
(权衡一下,还是定义后再用比较好。
因为定义后,不管是否使用指针或引用都是可以的)15.当出现错误时,是因为在调用类的函数时,可能不是用“.”,而是应该用“->”。
16.当出现调试时没有错误,但是推出后就会中断,可能是因为没有释放造成的。
所以在关闭之后再开就又可以运行成功了。
17. 当打开资源视图时,出现"在另一个编辑器中打开".说明是相关的文件已经以代码形式打开了,所以就不能再打开了.把那个文件在右边窗口关闭,再重起程序就可以了.18. 出现“未知的标识符”一般都是拼写错误,注意检查代码中的拼写问题。
19. 当出现时一般是空指针或是越界。
检查指针。
20. 当出现时,只要把debug运行改为release运行就可以了(release不会去连接*d.dll库)。
或是把项目属性→配置环境→清单工具→输入输出→嵌入清单改为否。
或是把Int…main(int...,char…)改为main()也可以。
(/u/20080427/16/9b92f949-1354-491c-b4fc-13ea4ebf4837.html)21.当出现时,说明是在调用结构体的元素时,注意是用“->”还是“.”22. 当出现时,是因为字符集的原因,只要在项目--→属性--→配置属性--→常规--→(项目默认值的)字符集,改为“未设置”。
(无法转换的这一类问题都解决了)时,是因为头文件没有包含opencv库造成的,只要加上#include “cv.h”就可以了。
24.应该是没有添加opencv库文件25.26. 在插入视频后,不能运行。
错误提示是说“unable to connect Decoder filter”可能是解码器的问题。
27. 出现这样的错误:t1.1.exe 中的0x1026ed6a (msvcr90d.dll) 处未处理的异常: 0xC0000005: 写入位置 0x02628000 时发生访问冲突这个问题在别人的电脑上面运行不开会有错,但是在我的机子上就会有错。
都是那个语句出错。
应该是内存的问题吧?28. 在VS里面是不区分大小写的,所以,项目的名称不能跟某些要用到的头文件一样的名称。
因为在项目生成之后,会自动生成一个“项目名称.h”的头文件。
这样就会让VS找不到要找的是哪一个。
29.出现错误时,这次的解决方法是:首先先把vs关闭,然后执行开始>>所有程序>>Mircosoft visual studio 2008>>visual studiotools>>visual studio 2008 命令提示然后再输入 devenv /resetskippkgs这之后会提示,只要把“Resource.h”关闭就可以了。
是空指针或野指针(指不可用内存区域的指针或指向未知区域的指针)、或越界,还有可能是多线程同时访问同一段代码。