一般更改 VS2005 路径都是通过打开 VS2005 ,然后选择 ”Tool”, “Options”, “Projects and Solutions”, “VC++ Directories”, 然后手动添加或删除 include, library, source 路径。

当经常需要批量更改路径时,以上手动步骤就太繁琐,太麻烦了。其实 VS2005 把这些路径设置存在CurrentSettings.vssettings 文件中。这个文件通常放在 My Documents/Visual Studio 2005/Settings 下。

可以以文本方式打开文件,可以看到它是一个 xml 格式,查找如下路径可以找到 include, library, source 的设置:

---------------------------------------------------------------------------------------

< UserSettings >

< ToolsOptions >

< ToolsOptionsSubCategory name =" VCDirectories " …… >

< PropertyValue name =" IncludeDirectories "> …</ PropertyValue >

< PropertyValue name =" LibraryDirectories "> …</ PropertyValue >

< PropertyValue name =" SourceDirectories "> …</ PropertyValue >

---------------------------------------------------------------------------------------

把里面的内容整理一下,显示如下:

---------------------------------------------------------------------------------------

Win32

|

$(VCInstallDir)lib;

$(VCInstallDir)atlmfc/lib;

$(VCInstallDir)atlmfc/lib/i386;

$(VCInstallDir)PlatformSDK/lib;

$(FrameworkSDKDir)lib;

$(VSInstallDir);

$(VSInstallDir)lib;

D:/works/ACE/ACE_wrappers/lib;

D:/local_vap/VAPLib;

D:/local_vap/MsXml3/lib;

D:/local_vap/Adfin/lib/mrv

|

Pocket PC 2003 (ARMV4)

|

$(VSInstallDir)SmartDevices/SDK/PocketPC2003/lib/ARMV4;

$(VCInstallDir)ce/atlmfc/lib/ARMV4;

$(VCInstallDir)ce/lib/ARMV4;

|

Smartphone 2003 (ARMV4)

|

$(VSInstallDir)SmartDevices/SDK/SmartPhone2003/lib/ARMV4;

$(VCInstallDir)ce/atlmfc/lib/ARMV4;

$(VCInstallDir)ce/lib/ARMV4;

---------------------------------------------------------------------------------------

可以看到他以 | 分隔开了不同的小块,其中第二个小块就是我们在 VC 中的 include 设置路径,前面几条是 VC 默认的,后面以 D: 开头的就是个人后面添加的。手动改变这些字符就可以达到通过 VC 更改同样的效果。

在这里,我通过 perl 和 dos 的批处理自动进行 include, library, src 路径的自动改变。

首先,创建一个文本文件,填入我们需要的路径设置:

( My_vc_path.txt ) :

---------------------------------------------------------------------------------------

library=

D:/works/ACE/ACE_wrappers/lib;

D:/local_vap/VAPLib;

D:/local_vap/MsXml3/lib;

D:/local_vap/Adfin/lib/mrv;

include=

D:/works/ACE/ACE_wrappers;

D:/local_vap/VAPInclude;

D:/local_vap/Adfin/include/mrv;

D:/local_vap/MsXml3/inc;

src=

D:/works/ACE/ACE_wrappers/ace;

D:/works/dev_net/library/vaabase/trunk/Source Code;

---------------------------------------------------------------------------------------

然后是 perl 文件,他的主要功能就是打开 My_vc_path.txt ,读入设置,然后再打开 CurrentSettings.vssettings ,查找相应路径并进行替换。这里要注意不要把 VC 默认的路径给替换了。

Perl 程序代码:

( vc_path_change.pl ) :

---------------------------------------------------------------------------------------

if (@ARGV < 2)

{

die ('usage : "vssettings file name" "your file name"');

}

$vc_path = @ARGV[0];

$my_vc_path = @ARGV[1];

$vsseeting_text = "";

@my_setting_lines = ();

if (! open (VC_PATH, $vc_path))

{

die ("can not open /"$vc_path/"");

}

else

{# 读入 CurrentSettings.vssettings 文件内容,并存入 $vsseeting_text

@tmpLines = <VC_PATH>;

$vsseeting_text = join (" ", @tmpLines);

close (VC_PATH);

}

if (! open (MY_VC_PATH, $my_vc_path))

{

die ("can not open /"$my_vc_path/"");

}

else

{

@my_setting_lines = <MY_VC_PATH>;

chop (@my_setting_lines);

close (MY_VC_PATH);

}

@my_settings = ();

{# 解析获取自己的 include, lib, src 设置

@my_vc_path_para = ("include=", "library=", "src=");

$para_index = 0;

foreach $line (@my_setting_lines)

{

$math_para = 0;

for ($index=0; $index<3; ++$index)

{

if ($line =~ $my_vc_path_para[$index])

{

$math_para = 1;

$para_index = $index;

}

}

if ($math_para == 0)

{

$my_settings[$para_index] .= $line;

}

}

for ($index=0; $index<3; ++$index)

{

print ("$my_vc_path_para[$index]" . $my_settings[$index], "/n");

}

}

{# 替换路径

@str_header = ('<PropertyValue name="IncludeDirectories">',

'<PropertyValue name="LibraryDirectories">',

'<PropertyValue name="SourceDirectories">');

$str_ender = '</PropertyValue>';

for ($index=0; $index<3; ++$index)

{

#<PropertyValue name="IncludeDirectories"> …</PropertyValue>

$pattern = "(.*$str_header[$index])(.+?)($str_ender.*)";

@list1 = $vsseeting_text =~ /(.*$str_header[$index])(.+?)($str_ender.*)/s;

print ("Fetch full path : $list1[1]/n");

#Win32|$(VCInstallDir)include;...|...

@list2 = $list1[1] =~ /^(.*?/|)(.+?)(/|.*)/s;

print ("Fetch path : $list2[1]/n");

#$(VCInstallDir)include;...D:/local_vap/SSL/include;

@system_path = $list2[1] =~ /(/$.+?;)/g;

$list2[1] = join ("", @system_path) . $my_settings[$index];

print ("New path = $list2[1]", "/n");

$list1[1] = join ("", @list2);

$vsseeting_text = join ("", @list1);

}

}

if (! open (VC_PATH, ">" . $vc_path))

{

die ("can not open /"$out_path/"");

}

else

{

print VC_PATH ($vsseeting_text);

close (VC_PATH);

}

---------------------------------------------------------------------------------------

由于 perl 程序需要两个参数,一个是 CurrentSettings.vssettings 文件的路径,另一个是自己的设置文件,所以再写个 cmd 文件。

---------------------------------------------------------------------------------------

set vssetting_file=C:/Documents and Settings/Jiqin.Hong/My Documents/Visual Studio 2005/Settings/CurrentSettings.vssettings

set my_file=./my_vc_path_1.txt

perl vc_path_change.pl "%vssetting_file%" "%my_file%"

---------------------------------------------------------------------------------------

好,到此完成,每次需要更改 VC 的 include, library, src 等路径时,创建好文本路径文件,填入设置,然后运行 cmd文件即可。

VS2005的include,library,src等路径自动设置相关推荐

  1. VS2005得include,library,src等路径自动设置

    一般更改 VS2005 路径都是通过打开 VS2005 ,然后选择 "Tool", "Options", "Projects and Solution ...

  2. (8)Verilog include 头文件使用路径(FPGA不积跬步101)

    名言:相信自己,心有多大,舞台就有多大! 1 问题描述 在Quartus.ISE.vivado等开发工具下,使用include头文件时,会涉及到文件路径问题.如果不添加文件路径,编译时会报错误. 2 ...

  3. Excel 取消Internet及网络路径自动替换为超链接

    Excel 取消Internet及网络路径自动替换为超链接: 1.文件 =>选项 =>校对 点击自动更正选项 2. 自动更正 配置修改 点击"键入时自动套用格式"tab ...

  4. 花了一年时间开发出来的基于DXF文件的加工路径自动生成软件

    随着科技水平的进步,计算机辅助制造技术CAD/CAM在机械加工中起着越来越重要得作用 ,传统的手动编程正在被自动编程所取代,目前PRO/E,UG,MasterCAM等商业软件可以根据设计 的图形直接生 ...

  5. How to include library manually into maven local repository?

    http://www.mkyong.com/maven/how-to-include-library-manully-into-maven-local-repository/ How to inclu ...

  6. css路径自动加上了路径_CSS和关键路径

    css路径自动加上了路径 Back when I was still actively into speaking at public events (way, way back, something ...

  7. webexam php,Laravel View Composer - 当 include 一个模板时,自动获取其所需的变量

    网站中,许多页面的侧边栏是相同的.例如: 分类列表页,与文章详情页的侧边栏都包含 最新文章 最新评论 统计计数 这些相同的侧边栏数据也是动态的,并不是固定的. 在每个 controller 里都写一遍 ...

  8. java中把路径定义到src下的_设置java路径路径

    JDK环境变量配置 java设置classpath,path,java_home环境变量 Windows7安装JDK的环境变量设置Windows7 X64安装"jdk-6u26-window ...

  9. 关于在react项目中img标签src的路径问题

    关于在react项目中img标签src的路径问题 ​ 公司要求开发一个静态页面,那这当然需要用img标签放些图片作为背景.之前我的做法是把images这个文件夹放在站点的子目录里面,然后通过站点ip加 ...

最新文章

  1. 大数据分析之Hadoop
  2. poj 1664 放苹果 DPDFS
  3. 小学生计算机课堂实践的重要性,浅谈小学信息技术教育重要性.doc
  4. tensorflow 转张量类型为float_5个简单的步骤掌握Tensorflow的Tensor
  5. java实现缓存中间件,Redis,分布式系统中不可少的缓存中间件
  6. ComfortTypingPro快速录入工具
  7. 网络硬盘录像机和数字硬盘录像机区别(nvr dvr ipc区别)
  8. 程序员,该注意下啦!
  9. VB.NET LDAP 用户身份验证
  10. ICRoute 语音识别芯片/声控芯片 用声音去沟通 LD332X系列语音识别芯片
  11. 3500常用字+字母+数字+表单符号
  12. 修改监视器驱动为大显示器来提高屏幕分辨率
  13. gdb学习20:总结
  14. 基于移动终端的增强现实技术方案(已实现)
  15. IMDB评出来的100部最难看的电影排行榜
  16. 2020大学生安全教育网课课后答案
  17. 【CSS特效扫盲】精选40种纯CSS特效应用实例,肝了10个晚上整理纯CSS特效(上)(附源码下载)
  18. 基本,动态,GPT,MBR磁盘介绍
  19. (一)深入理解采样定理
  20. 修改RK3399 HDMI显示分辨率

热门文章

  1. 方舟原始恐惧mod生物代码_重磅!《命令与征服》和《红色警戒》源代码在GitHub公布了...
  2. 第三个计算机时代为,计算机三个时代的各自特点?
  3. FlySee(绿色图片查看器)3.3.4 发布
  4. NMEA数据格式详解
  5. 深入理解JAVA虚拟机学习笔记11——JDK可视化工具-VisualVM以及案例分析
  6. 计算机监控系统功能概述,物联网技术在计算机监控系统的应用
  7. 供给云SAAS平台企微助手再升级
  8. 联想ideapad300-15isk加内存和固态硬盘拆机改造详细步骤
  9. 十什么争什么的成语(十什么争什么四字成语大全)
  10. php中的时间函数(如何设置时区有4种方法)------与时间相关的函数 (time、date、m‘ktime、microtime(true)、strtotime)