WEB开发网
开发学院软件开发VC 在低版本的 vc 中使用 vc 10.0 的新特性 阅读

在低版本的 vc 中使用 vc 10.0 的新特性

 2009-06-08 20:08:06 来源:WEB开发网   
核心提示:/*!在低版本的vc中使用vc10.0的新特性createdby:andrew.wu(erpingwu@gmail.com)*/vc 10.0 提供了一些新的特性,最引人注目的莫过于 lambda, 但 vs2010 beta 内存占用之多也不得不让人心生退让. 高手 7cat 指出 "vc ide 只是一个

/*!
在低版本的 vc 中使用 vc 10.0 的新特性
created by : andrew.wu (erpingwu@gmail.com)
*/

vc 10.0 提供了一些新的特性,最引人注目的莫过于 lambda, 但 vs2010 beta 内存占用之多也不得不让人心生退让.

高手 7cat 指出 "vc ide 只是一个壳"

那么如果利用 vc 10.0 编译器的新功能?

以vc9为例, 注意 Tools->Projects and Solutions->VC++ Directories->Executable files->$(VCInstallDir)bin, 这个说明了IDE所用的cl.exe, link.exe等工具的所在.在此目录前新增一个 $(VCInstallDir)bin_vc10.0, 将所需要的 vc10.0 的文件 copy 过去.

c1.dll
c1xx.dll
c2.dll
cl.exe
cl.exe.config
link.exe
link.exe.config
msobj100.dll
mspdb100.dll
mspdbcore.dll
mspdbsrv.exe
msvcm100.dll
msvcp100.dll
msvcr100.dll

然后找个例子试试,你就发现 c++ 0x 的 lambda 已经能为你所用了, 这时发布程序所用的 dll 还是 vc9 的.

#include "stdafx.h"
#include <iostream>
#include <string>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
 [](const string& str){
 cout << str << endl;
 }("Hello vc 10.0");
}

MS对 vc10 的说法是 “10 Is the New 6”,这一点只在一个地方有体现,不是速度,不是 IDE 内存占用,它表现在程序最终发布上。阿门, vc 10.0 再次可以通过 xcopy 发布,而不用辛苦的对 manifest 做各种 hack 式的处理。

不过,即使是用了 vc 10.0 的 link.exe ,还是不能摆脱 vc9 的困境。这时有一个更夸张一点的做法:不仅仅使用 vc 10.0 的编译与连接工具,还使用它的库。

只需在 Tools->Projects and Solutions->VC++ Directories->Include files 和 Library files 增加 vc 10.0 对应的目录(注意需要在 vc9 原来目录之前)

重建项目后你会发现你可以将程序与所需要的 vc 10.0 的 dll 直接 copy 到没有 vc 10.0 运行库的机器使用了

以上步骤也在 vc 7.1 中测试通过

Tags: vc 使用

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接