网站后台用什么浏览器,注册安全工程师好考吗难度大吗,电子商务网站建设与管理答案,wordpress竖版图片尺寸如果只是简单创建一个VS CProject或者MFC Project#xff0c;可能很多时候#xff0c;只关心将Project放在硬盘的那个位置#xff0c;与Project目录相关的的其他问题#xff0c;并不引人注意#xff0c;我们也不是十分在意。有时我们不得不进行工作目录方面的设置#xf… 如果只是简单创建一个VS CProject或者MFC Project可能很多时候只关心将Project放在硬盘的那个位置与Project目录相关的的其他问题并不引人注意我们也不是十分在意。有时我们不得不进行工作目录方面的设置如Project中需要用到OpenCV图像处理库生成的可执行文件需要在本地磁盘中创建文件或者需要打开本地·磁盘中的文件等。下面来探讨VS C Project工作目录方面的话题。 VS C Project的工作目录是Project属性的一部分查看、修改、设置等都在目录项中进行。下面以用VS 2022 创建的DequeTest Project (对话框程序)为例演示目录属性的查看与设置。 点击“项目”菜单然后点击“DequeTest和属性子菜单 弹出DequeTest属性页如下 在上面的属性页的配置属性项下的常规项中可以看到输出目录、中间目录两项与目录相关的内容。点击输出目录项后面的向下符号即可想象展开看到”编辑“与”浏览“两个选项 点击”编辑“项即可看到输出目录如下 输出目录中$(SolutionDir)$(Platform)\$(Configuration)\表示编译生成的文件输出文件放在Project所在目录下的平台名目录下的配置目录下本程序是在win10下用VS2022创建因此平台名是X64目前Project配置如下 配置目录名是Debug
生成的文件路径如下 修改输出目录如下 重新生成解决方案 可以看到在D目录下生成了输出文件 点击”浏览“选项则是浏览选择输出目录缺省是Project所在目录如下 同样中间目录也可修改也有”编辑“与浏览两个选项如下 在配置属性的高级选项中有一项有提到输出目录如下 ”将C运行时复制到输出目录“是什么意思先不管它其缺省值是否将其改为是如下 重新生成看下结果如何。可以看到D目录下多了很多dll文件如下 实际上是将VC runtime的1相关文件复制到了输出目录中。一般情况下不需要将此项选为”是“如果的确需要VC运行库可以在程序文件打包时打包VC运行库在程序安装时让其安装VC运行库。
点击配置属性相下的”调试“项可以看到工作目录一栏如下 将其展开同样也有”编辑“与”浏览“两个选项可用这两个选项对其进行修改。 点击编辑在弹出的工作目录对话框中可以看到当前工作目录 也可在这个对话框中对工作目录进行修改。这里不对其修改。 展开”VC目录“项可以看到很多与目录有关得到项目 这些目录项都是可以编辑或者配置的。其编辑或配置需依实际需求进行。一般情况下不要随意修改否则可能否导致出错。例如本示例项目需要用到OpenCV就需要配置”包含目录“与库目录。包含目录配置是指出包含内容所在目录DequeTest Project的配置如下 DequeTest Project的库目录配置是指出OpenCv库所在目录其配置如下 上面探讨了与Project工作目录及相关目录的配置。如果程序要打开工作目录中的文件,需要如何配置路径呢?例如,如果要为本示例的对话框中的打开,按钮添加代码要打开工作目录中的图像文件要如何设置文件路径呢? 现在来为”打开“按钮来添加事件处理程序,在添加代码前先将一个图像文件Copy到Project目录下,因为该目录即为Project的工作目录。如下 添加”打开”按钮事件处理程序的代码如下
void CDequeTestDlg::OnBnClickedOpen()
{Mat src imread(1.tif);if (src.empty())MessageBox(L无法打开图像);else{MatToCImage(src, mImage);DispalyImage(mImage);}
}
由于图像文件已经放在其工作目录中所以不需要要特别指出文件所在目录。上面代码中用到了两个函数MatToCImage与DisplayImage这里两个函数事先已写好因与本文主题无关这里不特别做说明。试运行结果如下 点击“打开”按钮结果如下 已正常打开图像。因.\\也是表示当前目录相对路径表示法上面的代码修改如下, 也应该可以正常打开图像。
void CDequeTestDlg::OnBnClickedOpen()
{//Mat src imread(1.tif);Mat src imread(.\\1.tif);if (src.empty())MessageBox(L无法打开图像);else{MatToCImage(src, mImage);DispalyImage(mImage);}
}
试运行再点击打开结果如下 确实能够正常打开。 如果程序编译成了可执行的exe文件exe程序文件的工作目录又是哪个目录当然是可执行的exe文件所在目录。将可执行的exe文件与图像文件放在同一目如下 以管理员身份运行程序点击打开结果如下 可以正常打开。如果将“打开”的源代码改为如下
void CDequeTestDlg::OnBnClickedOpen()
{//Mat src imread(1.tif);//Mat src imread(.\\1.tif);Mat src imread(..\\1.tif);if (src.empty())MessageBox(L无法打开图像);else{MatToCImage(src, mImage);DispalyImage(mImage);}
}则图像文件则需要放在生成的可执行exe文件的上级文件夹中否则无法打开。将上面Release文件夹中的可执行文件用新生成的文件替代。试运行点击打开结果如下 将图片移动到上级文件夹中。如下 试运行点击打开结果如下 有关VS C的工作目录设置就探讨到这里需要说明的是如果没有修改Project的工作目录Project的工作目录就是Project的的所在目录生成的可执行的exe文件的工作目录是其所在目录即将生成的可执行的exe文件Copy到哪个目录下这个目录就变成了生成的可执行的exe程序文件的工作目录如果该程序文件选打开文件文件的相对位置必须正确。