VS2005因错误设置目录引起的错误

来源自:http://blog.csdn.net/li_007/archive/2007/06/29/1671563.aspx

今天从http://www.opencv.org.cn/index.php/%E4%BD%BF%E7%94%A8DirectShow%E9%87%87%E9%9B%86%E5%9B%BE%E5%83%8F#.E4.BE.8B.E7.A8.8B下载于世琪老师的Directshow类,用来检测自己机子上的USB摄像头(微点公司MVCII-1M)到能否连上。

照着教程,一步一步来,却有如下编译错误:

C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\include\winnt.h(222) : error C2146: 语法错误: 缺少“;”(在标识符“PVOID64”的前面)
C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\include\winnt.h(222) : error C4430: 缺少类型说明符- 假定为int。注意: C++ 不支持默认int
C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\include\winnt.h(5940) : error C2146: 语法错误: 缺少“;”(在标识符“Buffer”的前面)
C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\include\winnt.h(5940) : error C4430: 缺少类型说明符- 假定为int。注意: C++ 不支持默认int
C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\include\winnt.h(5940) : error C4430: 缺少类型说明符- 假定为int。注意: C++ 不支持默认int

令我很是不解。

最后在网上查找一下,发现是包含目录顺序的关系:

在包含于老师的DirectShow/Inlude时,放在了:

$(VCInstallDir)PlatformSDK\include和$(FrameworkSDKDir)include
两个目录上面。
调整“C:\OpenCV2.0\vs2005\DirectShow\Include”到包含目录的最底下一行,再编译,还是没通过。

再查,发现自己画蛇添足。
在:项目——xx工程属性——C/C++——常规——附加包含目录里也加上了DirectShow/Inlude。
当然,在linker里的也加上了相应的库。

将这两项都删掉。

再编译,顺利通过。

回头再看于老师的使用说明:

在vc++2005开发环境下的使用说明:
//    1.将CameraDS.h CameraDS.cpp复制到你的项目中
//    2.将DirectShow复制到你的opencv根目录下,菜单 工具->选项->项目和解决方案->vc++目录,把..(你的opencv安装目录)/DirectShow/Include添加到
//   “引用文件”中$(VCInstallDir)PlatformSDK\include和$(FrameworkSDKDir)include下面任意位置
//    3.菜单 工具->选项->项目和解决方案->vc++目录,把..(你的opencv安装目录)/DirectShow/Lib添加到“库文件”下面。也可参考使用说明3。
怪自己不细心啊。

===================
遗憾的是,这次检测结果证明,还是不能调用微视公司的这个摄像头。——看来得想办法找到该摄像头的DirectShow驱动了。

posted on 2011-04-14 22:43 lateCpp 阅读(596) 评论(0)  编辑 收藏 引用 所属分类: MFC


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


导航

统计

常用链接

留言簿

随笔分类

文章分类

文章档案

搜索

最新评论