VS2005得include,library,src等路径自动设置
一般更改 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等路径自动设置相关推荐
- VS2005的include,library,src等路径自动设置
一般更改 VS2005 路径都是通过打开 VS2005 ,然后选择 "Tool", "Options", "Projects and Solution ...
- (8)Verilog include 头文件使用路径(FPGA不积跬步101)
名言:相信自己,心有多大,舞台就有多大! 1 问题描述 在Quartus.ISE.vivado等开发工具下,使用include头文件时,会涉及到文件路径问题.如果不添加文件路径,编译时会报错误. 2 ...
- Excel 取消Internet及网络路径自动替换为超链接
Excel 取消Internet及网络路径自动替换为超链接: 1.文件 =>选项 =>校对 点击自动更正选项 2. 自动更正 配置修改 点击"键入时自动套用格式"tab ...
- 花了一年时间开发出来的基于DXF文件的加工路径自动生成软件
随着科技水平的进步,计算机辅助制造技术CAD/CAM在机械加工中起着越来越重要得作用 ,传统的手动编程正在被自动编程所取代,目前PRO/E,UG,MasterCAM等商业软件可以根据设计 的图形直接生 ...
- 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 ...
- css路径自动加上了路径_CSS和关键路径
css路径自动加上了路径 Back when I was still actively into speaking at public events (way, way back, something ...
- webexam php,Laravel View Composer - 当 include 一个模板时,自动获取其所需的变量
网站中,许多页面的侧边栏是相同的.例如: 分类列表页,与文章详情页的侧边栏都包含 最新文章 最新评论 统计计数 这些相同的侧边栏数据也是动态的,并不是固定的. 在每个 controller 里都写一遍 ...
- java中把路径定义到src下的_设置java路径路径
JDK环境变量配置 java设置classpath,path,java_home环境变量 Windows7安装JDK的环境变量设置Windows7 X64安装"jdk-6u26-window ...
- 关于在react项目中img标签src的路径问题
关于在react项目中img标签src的路径问题 公司要求开发一个静态页面,那这当然需要用img标签放些图片作为背景.之前我的做法是把images这个文件夹放在站点的子目录里面,然后通过站点ip加 ...
最新文章
- IntelliJ IDEA 2019.2最新解读:性能更好,体验更优,细节处理更完美!
- Zuul:Cookie和动态路由
- android 中 四舍五入的method */
- 微信接口请求次数_接口签名验证常用方案
- Hawtio和Jolokia的休眠统计
- Apache JMeter 启动
- 如何在Win11上快速加密硬盘 Win11上快速加密硬盘方法步骤
- 如何创建从Visual Studio到Wolfram Mathematica的简单调用
- python工资一般多少西安-Python面试经验分享——西安贝业思数据
- 【COCOS2D-HTML5 开发之三】演示样例项目附源代码及执行的GIF效果图
- Project: Individual Project - Word frequency program
- Java学到什么程度可以面试工作?
- 第四章 sysrepo共享内存机制
- 多维数组展平的几种方式
- MySQLSyntaxErrorException: Unknown error 1146和SQLSyntaxErrorException: Unknown error 1146
- scada系统集成_设计 SCADA 应用程序软件
- Neo4j安装及简单使用
- win7一直安装并更新计算机,win7系统更新时一直正在等待安装重启不更新的恢复方案...
- 【跟着项目学CSS】第一期-闪动LOGO
- 牛客-牛客练习赛24-B	凤 凰
热门文章
- php教程数据库,php数据库基础
- day_02-个人博客系统
- COLUMBIA电影公司片头的女人是谁
- 网安零基础学习-python-面向对象编程(灰帽编程15)
- 研究生复试核心竞争力:编程(加分项)
- proe服务器高速缓存位置,一招搞定Proe低版本打开高版本的问题 | 我爱分享网
- 东北人都难懂的东北话
- 应届毕业生,让人欢喜让人忧
- java线段绕原点旋转的方法,将点绕坐标原点顺时针旋转得到点的坐标为___________。-九年级数学-魔方格...
- 知行之桥堆内存及清理