VC++ Directories in vs2010

写这个的目的就想迅猛解释一下什么是VC++ directory, 以及在VS2010里的变化。

 

12 

当你打开VS2010, 当你需要配置C++, 那真是一声叹息啊, 配置页面不见了! 回头说VS08的年代, 里面都是这样子的$(VSinstalldir), $(fxcopdir), 嗯, 这些都是给IDE配置的环境变量, 但是, cl.exe 是不支持的.  你现在还用VS08么, 用的话打开%LOCALAPPDATA%\Microsoft\VisualStudio\9.0 这个文件夹, 对, 有个文件叫VCComponents.dat, 单用户, 单机器的配置都在这。 这个文件的格式, 打开以后是INI格式的, 不是XML, 不是vcproj, 所以导入这个配置的code, 可能是vcbuild.exe 和 IDE实现的.

 

2010里的变化

话说回来, 现在打开vs2010, 看到的是上头那张图。 改到哪去了? 随便打开一个C++的项目, 然后右键属性, ALT+ENTER, 现在在这里了, (当然单项目是单独配置了, 靠), 左边的树里头又有VC++ directories这个东西了, 但是, 点进去和以前的完全 * 不 * 一 * 样 *

当然如果你之前有VS2008的话, 配置的值倒是和以前没什么差, 而且还是可以用VS2008一样的IDE宏。 但是, 不是一个用户一个配置了。

 

怎么办?

首先, 打开Property Manager。 方法是 菜单上的VIEW-other Window ->Property Manager.  这点很重要, 因为有80%的几率你的默认配置是导入的, 这个窗口不存在.

然后选中项目, 展开DEBUG|RELEASE配置, 可以看到有 "Microsoft.Cpp.Win32.user Property Pages", 和 "Microsoft.Cpp.X64.user Property Pages", 其他名字可以在其他配置下面找到. 然后你的include library directories都可以在这里改了, 注意: 在这里改, 应用以后效果是*全局的*

然后重启VS2010.

 

题外话1, 原因

改了更牛逼? 有人在VS08的时候发牢骚说只能配置全局, 以后没法改了, 想单独配置一个项目真是太难了。 于是我们(指微软) 就改了, 这是一个最主要的原因。 现在你的build机器, 和你的soucecode control 都可以想怎么配怎么配了。

另外一个原因是说VCComponents.dat 的配置是INI的, 这样子和其他的build模式不兼容(指msbuild, 和使用了msbuild的corext等)。

 

题外话2,编译失败

error C2065: '_In_opt_z_' : undeclared identifier
error C2143: syntax error : missing ')' before 'const'
error C2182: '_invalid_parameter' : illegal use of type 'void'

从VS08把项目升级过来以后, 第一火大的就是怎么也编译不过去, 让人恼的是以为VS脑残了, 连系统的头文件都认为语法错误吗?

罪魁在这里:C:\WinDDK\6001.18001\inc\api\sal.h

重复引用了一个头文件, 而且2份文件其实内容不一样(据说DDK的那份比较'过时')

所以解决方法是 试试C:\Program Files\Microsoft Visual Studio 10.0\VC\include来取代 C:\WinDDK\6001.18001\inc\api

或者直接删掉C:\WinDDK\6001.18001\inc\api\sal.h.

当然, 也有可能是编码错误(unicode or multi-byte character), 或者是使用了stdcall,或其他的其他。

 

 

主要来源 http://blogs.msdn.com/vsproject/archive/2009/07/07/vc-directories.aspx

posted on 2010-04-06 17:34  无法显示此网页  阅读(6364)  评论(2编辑  收藏  举报

导航