Visual Studio 2008 中程序路径配置 .

Visual Studio 2008 环境变量的配置(改为:Visual Studio 2008 中程序路径配置  更合理)

在调试 Visual Studio 2008 程序时,经常有一些动态链接库(即 dll 文件)需要加载到工程里,这样才能依赖第三方库进行程序调试。

这些动态链接库,往往都是测试版本或是开发中的版本,或者会有若干个版本;这个时候,如果直接把 dll 所在目录加到 PATH 里,则会有潜在冲突的危险;如果直接拷贝到 Visual Studio 的目录下,假如测试工程太多,每次有新版本的动态链接库更新时,你需要更新若干次,拷贝、粘贴苦不堪言。

在开发过程中,究竟怎样来让 Visual Studio 链接这些 lib 及 dll 文件会比较好呢?

总体上来说,有几种方法可以改变 Visual Studio 的环境变量设置:

  1. 直接添加到系统的 PATH 变量里

    这个方法最简单,也最直接,但是坏处是会影响全局的 PATH 设置,尤其是你包含着大量测试用的 dll 时。
  2. 在 Visual Studio 全局设置里,把 dll 所在目录添加到 PATH 里:

    通过 Visual Studio 菜单 ==> 工具 ==> 选项 ==> 项目和解决方案 ==> VC++目录,在下拉框里选择"可执行文件",然后把 dll 所在路径添加进去。
  3. 直接把所有 dll 拷贝到 Visual Studio 工程目录下,或是拷贝到生成可执行文件的文件夹(默认情况下是 Debug 或 Release 目录)下:

    这个方法也很简单,但是当你有若干个工程时,你每次更新 SDK 及其 dll 文件,你就要把所有的工程都更新,这个不符合文件唯一性的工程性准则。
  4. 在调试程序时,让 Visual Studio 帮你切换当前工作目录到 dll 相应的目录下:

    在 Visual Studio ==> Project ==> Properties ==> Select Configuration ==> Configuration Properties ==> Debugging ==> Working directory 里填上 dll 所在目录,这样当在调试程序时,Visual Studio 会把当前工作目录切换到这个目录下,从而会自动读取本目录下的 dll 文件。

    这个方法的优点很明显,简单!副作用也很明显,在你切换了当前工作目录后,你可能会找不到程序的配置文件,在程序里写的诸如"./config.ini"全部都找不到了;另外,你要把所有的 dll 都放到这个工作目录里,否则一样会提示说找不到 xxx.dll 的问题。

  5. 最后一个方法,也是我认为最好的一个方法,在 Visual Studio 工程属性里把一个目录临时添加到 PATH 环境变量里:

    MSDN 上也有类似的介绍:How to: Set Environment Variables for Projects,方法很简单,在 "工程属性" ==> "调试" ==> "环境"里,添加类似如下所示的内容:

    PATH=%PATH%;$(TargetDir)\DLLS
    

    这样就可以把 $(TargetDir)\DLLS 临时添加到该工程所属的系统 PATH 里。    注:这个方法也常常用来在自己的工程中使用自己定义的环境变量(见我的另一篇http://write.blog.csdn.net/postedit/7291815

大家可以根据项目的实际情况,灵活选用以上方法。

注:本文撰写时参考了 StackOverflow 上的讨论话题:How do I set a path in visual studio?

1.1    小议c++文件流中文件路径

    在论坛中闲逛时,经常发现有朋友调试c/c++文件流的代码时,遇到文件路径的问题。下来我结合自己的经验,一起探讨一下。

1.1.1   文件路径的基本概念

OS的文件系统是一个树状结构,有目录、文件的概念

windows系统的例子:

E:\myprograme\BBG\include\bbg_stl>tree

 

E:.

│  bbg_stl_config.h

├─bbg_list

│      bbg_list.h

├─bbg_alloc

│      bbg_allocpool.h

│      bbg_alloc_adapter.h

│      bbg_construct.h

│      bbg_simple_alloc.h

│      bbg_allocator.h

│      bbg_uninitialized.h

├─bbg_common

│      bbg_export.h

│      bbg_common.h

├─bbg_iterator

│      bbg_iterator.h

├─bbg_vector

│      bbg_vector.h

├─bbg_type

│      bbg_type_traits.h

└─bbg_algorithm

        bbg_algorithm.h 

linux 系统的例子

yes@yes-desktop:~/myprograme$ find /home/yes/myprograme -type f

/home/yes/myprograme/main

/home/yes/myprograme/test.c

/home/yes/myprograme/tt-v4.7.zip

/home/yes/myprograme/main.cpp

/home/yes/myprograme/test

yes@yes-desktop:~/myprograme$

1.1.1.1         相对路径

“.” 一个“点”代表是当前目录所在的路径。对应着windows示例中的路径是:“E:\myprograme\BBG\include\bbg_stl”

“..” 两个“点”代表,相对于当前目录的上一层目录路径。对应着windowss示例中的路径是:“E:\myprograme\BBG\include” 

在UNIX家族、LINUX系统上,“.”和“..”的含义和windows是一样的。这两个路径称为相对路径。

当然类似 “..\ \BBG\include” 也是相对路径

1.1.1.2           目录分隔符的问题

从上面的两个示例中,可以发现windows系统的目录分隔符是“\”,而linux系统的目录分隔符是“/”

1.1.1.3            绝对路径

在windows系统中,以盘符开头的路径叫做绝对路径,比如:

“E:\myprograme\BBG\include”

而在linux系统中,“/”开头的路径叫做绝对路径,比如:

“/home/yes/myprograme/test”

注意:“/”是UNIX家族、LINUX所有目录的根目录。

1.1.2   C++文件流的应用

先以几个例子开头吧。

   //示例 1

    std::ofstream test_1("test_1.txt");

    test_1 << "hello world" << std::endl;

    test_1.close();   

    //示例 2

    std::ofstream test_2(".\\test_2.txt");

    test_2 << "hello world" << std::endl;

    test_2.close(); 

    //示例 3

    std::ofstream test_3("..\\test_3.txt");

    test_3 << "hello world" << std::endl;

    test_3.close(); 

    //示例 4

    std::ofstream test_4("d:\\test_4.txt");

    test_4 << "hello world" << std::endl;

    test_4.close(); 

说明:

1、上面示例1、示例2是一样的,代表当前路径下面的文件test_1.txt 和test_2.txt。

2、示例3,是相对于当前路径的上一层目录下面的文件test_3.txt。

3、示例4,是绝对路径,就是d:盘下面的 test_4.txt。

4、在用VS调试的时候,当前路径就是 VS工程文件所在的路径。

5、如果是没有在调试状态下运行,当前路径就是“可执行文件”(.exe)或者是“动态库”(dll)所在的路径。 

现在分别对示例代码进行说明一下,

例如我上面的示例代码保存在下面文件中:

D:\我的文档\Visual Studio 2005\Projects\Test\Test\test\test2.cpp 

我的工程文件所在的路径如下:

D:\我的文档\Visual Studio 2005\Projects\Test\Test\Test.vcproj 

那么在用VS调试的时候,

示例1和示例2中的 test_1.txt  和 test_2.txt

就在D:\我的文档\Visual Studio 2005\Projects\Test\Test目录下面

示例3中的test_3.txt在D:\我的文档\Visual Studio 2005\Projects\Test\目录下面。

示例4中的test_4.txt在D:根目录下面 

如果我们不是VS调试,直接执行可执行文件,比如,我的可执行文件的路径是:

D:\我的文档\Visual Studio 2005\Projects\Test\debug\ Test.exe 

那么,

示例1和示例2中的test_1.txt 和test_2.txt

就在D:\我的文档\Visual Studio 2005\Projects\Test\debug目录下面

示例3中的test_3.txt在D:\我的文档\Visual Studio 2005\Projects\Test目录下面。

示例4中的test_4.txt在D:根目录下面  

Windows路径分隔符的说明: 

在之前不是说过,windows的路径分隔符用“\”吗?但是上面的最后三个示例,怎么都用“\\”呢?

那是因为在字符串中,“\”是一个转义字符表示,必须“\\”才能表示一个“\”字符。

 

 

from:http://blog.csdn.net/jtop0/article/details/7573490

时间: 2024-12-31 11:24:00

Visual Studio 2008 中程序路径配置 .的相关文章

在Visual Studio 2008中编译F#程序

在Visual Studio 2008中,编译F#程序时,会出现警告(但不是错误),但是由于这个警告却使你的程序无法运行,不过大多数据这些警告都会有提示,提示你用.NET里的函数代替F#中的某些函数,但是这些.NET中的函数又不能像在C#中那样使用. 例如: #light let one = ["one "] let two = "two " :: one let three = "three " :: two let rightWayRound

Visual Studio 2008中的SQL数据库发布

数据库发布向导(Database Publishing Wizard)是一个流行的Visual Studio插件,它支持把本地的数据库部署到远程主机上去.Visual Web Developer团队宣布将把这个向导集成到Visual Studio 2008之中. 目前Visual Studio 2008的Beta 2版本还没包含这个向导,不过预计2008年2月发布的VS 2008 RTM将会一并安装这个向导的1.2版.这个数据库发布插件现在的版本是1.1,从属于SQL Server Hostin

如何在Visual Studio 2008中安装WCSF June 2007

在本文中, 我将介绍如何在VS2008中使用Web Client Software Factory (WCSF) June 2007. 1.安装 Guidance Automation Extensions Technology Preview (July 2007 Release for Visual Studio 2005 and Visual Studio Beta 2. 2.下载并安装Orca MSI editor (从 Windows SDK 中可以找到).Orca MSI Edito

如何在visual studio 2008中开发asp.net 1.1应用程序?

问题描述 如何在visualstudio2008中开发asp.net1.1应用程序?我在工程属性中只找到了.netframework2.0及以上的版本.谢谢大家,帮帮我,急! 解决方案 解决方案二:做不了解决方案三:lz不要浪费时间了.做1.1只能用VS2003了.高版本的都是2.0+的,都不支持1.1的开发.解决方案四:没错了,要用1.1就装回vs2003吧

在visual studio 2013中安装和配置Opencv 2.4.9

下载opencv和在windows下安装: 最新版本的opencv是2014.4.25的opencv2.4.9,这里选择当前最新版本.点击opencv for windows即可下载. 下载完成后,双击图标 会出现下面的提示框 选择你要将opencv保存的位置,提取内部文件.我这里将opencv保存在视频分析入门联系文件夹下.(提醒,opencv提取后,大小为3.7G,所以确保有足够的空间) Build文件夹内是经过编译,供我们使用的,sources文件是源代码.如果想自己在opencv的基础上

[求助] 在visual studio 2008 中进行office2010开发!能?不能?

问题描述 各位论坛里边的大神.我想请教一个问题:vsto的开发,需要针对office2003和2007建立相应的工程.那么对于2010版office呢?我的计算机上安装了2010版office和vs2008,建立工程的时候不论选office节点下的2003还是2007,都提示没有合适版本的office.我估计是office版本不对应的原因,又不想卸载office2010而装低版本的.如何解决?难道是vs2008不支持offcie2010的开发吗?还是打相应的补丁,或者装高版本的vsto就可以解决

Visual Studio 2008 、 Windows 环境变量介绍 和 如何在文件中引用环境变量 .

Visual Studio 2008  和 Windows 环境变量对设置 相对路径很重要,这样便于代码的移植,即使换一台计算机,代码不用更改配置,直接就能用. 可以在项目的"工具""属性页"对话框中任何接受字符串的位置使用这些宏.这些宏不区分大小写.  关于如何自己定义环境变量详见我的另一文章:http://blog.csdn.net/jtop0/article/details/7574139     宏 说明 $(RemoteMachine) 在"调试

基本技术: Visual Studio 2010中的多重目标 Visual Basic应用程序

在 Visual Studio 2008 之前,编写面向不同版本的 Microsoft .NET Framework 的应用程序需要安装不同版本的 Visual Studio 开发环境.每个版本的 Visual Studio 都提供了不同的开发人员体验,并会占用大量磁盘空间.而且,每个版本的 Visual Studio 的项目文件格式也各不相同.结果就是当您开发面向不同版本的 .NET Framework 的项目组件时,您会得到多个版本的项目文件或解决方案. Visual Studio 2008

VSTO 3.0: 用Visual Studio 2008开发Office业务应用程序

本文讨论: Visual Studio 2008 新增功能 为 Outlook 创建自定义窗体区域 连接数据源 添加搜索功能 本文使用了以下技术: Visual Studio 2008 到目前为止,我敢确定您已经听说了一些有关 Visual Studio 2008 的趣闻,它具有一些强大的功能,如支持 LINQ.改进了 Web 开发以及与 Windows Vista 和 SharePoint 紧密集成等等.不过 Visual Studio 2008 真正突出的一个特点是支持 Microsoft