使用directshow的一点路径包含问题

来源:互联网 发布:答题卡阅卷软件 编辑:程序博客网 时间:2024/05/22 08:04

        在一个名字为VideoCapMFC工程中,使用directshow程序文件时,我们将directshow文件夹放在了E:\OpenCV_study\MyProjects\VideoCapMFC文件夹下,编译提示错误:

        e:\opencv_study\myprojects\videocapmfc\camerads.h(26) : fatal error C1083: Cannot open include file: '\DirectShow\Include\qedit.h': No such file or directory

        查看E:\OpenCV_study\MyProjects\VideoCapMFC\CameraDS.h文件头部,发现以下文件包含语句:

         #include "\DirectShow\Include\qedit.h"

        修改代码为:

        #include "DirectShow\Include\qedit.h"

也就是去掉前导的\号后,重新编译,正常。

        但是,如果我们将directshow文件夹从VideoCapMFC文件夹里面挪出来,放在和VideoCapMFC文件夹并列的位置,就是说二者同在一个父文件夹下面,这时怎么办呢?

可以使用以下代码:

#include "..\DirectShow\Include\qedit.h"

        编译后,也正常。

上述代码的意思就是,..\使编译器定位到当前工程文件所在的父文件夹,在父文件夹下面寻找一个名字为DirectShow\Include\的文件夹,这个文件夹里有一个名字为qedit.h的头文件。

        我们结合DOS下的cd命令继续探究

点击开始菜单的运行,输入cmd,弹出命令行界面,先输入 

        E:  

结果界面如下:


再输入 

        cd E:\OpenCV_study\MyProjects\VideoCapMFC

结果界面如下:


这时,我们有四种操作,分别是进入当前文件夹的父文件夹、兄弟文件夹、子文件夹、驱动器分盘根文件夹。

(a)进入当前文件夹的父文件夹

        使用以下命令:

        cd ..\

结果如下:


(b)进入当前文件夹的兄弟文件夹

所谓兄弟文件夹,就是和当前文件夹共同一个父文件夹,但是两者之间互不包含的文件夹,两者间是并列的关系。我们先使用以下命令:cd E:\OpenCV_study\MyProjects\VideoCapMFC ,回到VideoCapMFC文件夹,然后使用以下命令:

        cd ..\Test_CV               

(注,Test_CV是VideoCapMFC文件夹的兄弟文件夹)

结果如下:


(c)进入当前文件夹的子文件夹

依然假设当前文件夹是VideoCapMFC文件夹,使用以下命令

        cd Debug

(注,DebugVideoCapMFC文件夹的子文件夹)

结果如下:


(d)进入当前文件夹的驱动器根文件夹

显然,当前文件夹VideoCapMFC的根文件夹是E盘,可以使用以下命令:

        cd \..

或者 

        cd e:

结果如下: