ToB企服应用市场:ToB评测及商务社交产业平台

标题: VS C++ Project(项目)的工作目次设置 [打印本页]

作者: 滴水恩情    时间: 2024-7-29 09:30
标题: VS C++ Project(项目)的工作目次设置
        如果只是简朴创建一个VS C++Project或者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的工作目次。如下:

添加”打开”按钮变乱处置惩罚步伐的代码如下:
  1. void CDequeTestDlg::OnBnClickedOpen()
  2. {
  3.         Mat src = imread("1.tif");
  4.         if (src.empty())
  5.                 MessageBox(L"无法打开图像!");
  6.         else
  7.         {
  8.                 MatToCImage(src, mImage);
  9.                 DispalyImage(mImage);
  10.         }
  11. }
复制代码
由于图像文件已经放在其工作目次中,所以不须要要特别指出文件地点目次。上面代码中用到了两个函数:MatToCImage与DisplayImage,这里两个函数事先已写好,因与本文主题无关,这里不特别做说明。试运行,结果如下:

点击“打开”按钮,结果如下:

已正常打开图像。因.\\也是表现当前目次(相对路径表现法),上面的代码修改如下, 也应该可以正常打开图像。
  1. void CDequeTestDlg::OnBnClickedOpen()
  2. {
  3.         //Mat src = imread("1.tif");
  4.         Mat src = imread(".\\1.tif");
  5.         if (src.empty())
  6.                 MessageBox(L"无法打开图像!");
  7.         else
  8.         {
  9.                 MatToCImage(src, mImage);
  10.                 DispalyImage(mImage);
  11.         }
  12. }
复制代码
试运行,再点击打开,结果如下:

确实可以大概正常打开。
        如果步伐编译成了可执行的exe文件,exe步伐文件的工作目次又是哪个目次?固然是可执行的exe文件地点目次。将可执行的exe文件与图像文件放在同一目,如下:

以管理员身份运行步伐,点击打开,结果如下:

可以正常打开。如果将“打开”的源代码改为如下:
  1. void CDequeTestDlg::OnBnClickedOpen()
  2. {
  3.         //Mat src = imread("1.tif");
  4.         //Mat src = imread(".\\1.tif");
  5.         Mat src = imread("..\\1.tif");
  6.         if (src.empty())
  7.                 MessageBox(L"无法打开图像!");
  8.         else
  9.         {
  10.                 MatToCImage(src, mImage);
  11.                 DispalyImage(mImage);
  12.         }
  13. }
复制代码
则图像文件则须要放在生成的可执行exe文件的上级文件夹中,否则无法打开。将上面Release文件夹中的可执行文件用新生成的文件替换。试运行,点击打开,结果如下:

将图片移动到上级文件夹中。如下:


试运行,点击打开,结果如下:

有关VS C++的工作目次设置就探究到这里,须要说明的是:如果没有修改Project的工作目次,Project的工作目次就是Project的的地点目次,生成的可执行的exe文件的工作目次是其地点目次,即将生成的可执行的exe文件Copy到哪个目次下,这个目次就变成了生成的可执行的exe步伐文件的工作目次,如果该步伐文件选打开文件,文件的相对位置必须正确。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4