VC2008 Express +OpenCV2.0使用CameraDS类的调试经历
来源:互联网 发布:c 小程序源码下载 编辑:程序博客网 时间:2024/05/29 08:08
原文:
http://www.opencv.org.cn/forum.php?mod=viewthread&tid=10176
<!-- m --><a class="postlink" href="http://www.opencv.org.cn/index.php?title=%E4%BD%BF%E7%94%A8DirectShow%E9%87%87%E9%9B%86%E5%9B%BE%E5%83%8F&oldid=9519">http://www.opencv.org.cn/index.php?titl ... oldid=9519</a><!-- m -->
同时也参照下面博客中的内容(下称文献2)解决了其中的一些问题。
<!-- m --><a class="postlink" href="http://blog.csdn.net/chenyusiyuan/archive/2009/10/08/4643313.aspx">http://blog.csdn.net/chenyusiyuan/archi ... 43313.aspx</a><!-- m -->
但又遇到一些别的问题,经查找多方资料终于调试成功。现在汇总如下,希望对后来者有所帮助,同时也感谢文献作者。
1、 按照文献1所说的“在vc++2005开发环境下的使用说明”完成步骤1-3
2、 编译报错,说找不到atlbase.h,于是安装VC++6.0,并添加相应的库,下图所示为include库。需要指出的是,添加库的顺序尽量按图中顺序来,否则可能出现一些错误,这个在文献2中有阐述。
3、接着编译,又报如下错误
atlbase.h(770) : error C2065: 'T' : undeclared identifier
atlbase.h(818) : error C2061: syntax error : identifier 'T'
解决办法是,在出现错误的代码前面增加以下语句
template <class T>
还有一个错误是关于InlineIsEqualGUID函数的,修改方法如下
修改 InlineIsEqualGUID() 为::ATL::InlineIsEqualGUID()
4、接着编译,又报如下错误
pen.obj : error LNK2019: unresolved external symbol __RTC_CheckEsp referenced in function "void __stdcall `vector constructor iterator'(void *,unsigned int,int,void * (__thiscall*)(void *))" (??_H@YGXPAXIHP6EPAX0@Z@Z)
CameraDS.obj : error LNK2001: unresolved external symbol __RTC_CheckEsp
Open.obj : error LNK2001: unresolved external symbol __RTC_Shutdown
CameraDS.obj : error LNK2001: unresolved external symbol __RTC_Shutdown
Open.obj : error LNK2001: unresolved external symbol __RTC_InitBase
CameraDS.obj : error LNK2001: unresolved external symbol __RTC_InitBase
解决方法是,在 Project -> Properties -> Configuration Properties ->C/C++ -> code generation中将Basic Runtime Checks 设置成default; Buffer Security Checks设置成 (/GS-)
5、接着编译,又报如下错误
unresolved external symbol "public: void __thiscall CCameraDS::CloseCamera(void)"
由于在第1步中只是将camerads.h,.cpp复制到工程中,并没有真正添加进来;需要在Solution Explorer 中 在camerads.h,.cpp文件处点右键,选择Include in Project,把它们真正包含到项目中来
6. 接着编译,又报如下错误
error LNK2019: unresolved external symbol ___iob_func referenced in function _main
error LNK2019: unresolved external symbol ___CxxFrameHandler3 referenced in function __ehhandler$_main
error LNK2001: unresolved external symbol ___CxxFrameHandler3
CameraDS.obj : error LNK2001: unresolved external symbol _IID_ISampleGrabber
CameraDS.obj : error LNK2001: unresolved external symbol _CLSID_NullRenderer
CameraDS.obj : error LNK2001: unresolved external symbol _CLSID_SampleGrabber
CameraDS.obj : error LNK2001: unresolved external symbol _LOOK_UPSTREAM_ONLY
CameraDS.obj : error LNK2001: unresolved external symbol _CLSID_CaptureGraphBuilder2
CameraDS.obj : error LNK2001: unresolved external symbol _IID_ICaptureGraphBuilder2
解决办法是,把vc98\lib也放到最下面。
这时编译、链接均成功,找个摄像头一试,可以实现相应功能。
不过,在链接时出现一个警告如下
LINK : warning LNK4044: unrecognized option '/wd4430'; ignored
这是按文献2的提示操作的步骤
“在Project -> Properties -> Configuration Properties -> Linker -> Command Line的Additional Options 中添加/wd4430:
此时,把这一步删去,发现编译、链接均成功,这个警告也消失。
0 0
- VC2008 Express +OpenCV2.0使用CameraDS类的调试经历
- VC2008 Express下安装OpenCV2.31
- win7+vs2010 使用camerads类
- 关于在“VC2008 Express下安装OpenCV2.3.1”的补充说明
- VC2008下安装OpenCV2.3.1的注意事项
- VC2008+OpenCV2.3.1 的安装配置
- opencv双摄像头的读取 CameraDS的使用
- VS2013配置CameraDS类
- 关于CameraDS类
- VC 2008 Express下OpenCV2.0的配置
- vc2008调试
- CameraDS类Directshow camera raw10
- OpenCV2.0的安装使用
- VC2008 忽然无法调试DLL的解决方法
- VC 2008 Express 编译OpenCV2.0/2.1
- VC2008下安装OpenCV2.3.1
- VC2008+OpenCV2.1安装过程
- 使用VSTS中附带的AmberPoint Express 调试WebService
- 子节点与父节点错误总结
- VS中使用sqlite静态连接
- HONGJIN2只需要按照他原来的设计继续码代码
- 程序自定义加载log4j配置文件
- AES中构造s盒中的乘法逆元的c语言实现
- VC2008 Express +OpenCV2.0使用CameraDS类的调试经历
- 将研发分为研究和开发
- 更改Wamp下网站地址栏图标的显示
- Struts1中ActionForward的技巧介绍
- HTTP访问的两种方式(HttpClient和HttpURLConnection)
- IOS开发笔记 代码篇
- Cocos2d-x 3.0 cocostudio骨骼动画的动态换肤
- 怎么样在真机测试ios APP
- CodeForces 30C Shooting Gallery 简单dp