您的位置:首页 > 编程语言 > C语言/C++

改造Visual C++ 2008 Express

2011-07-15 10:59 190 查看
Visual Studio确实很强大,但不是免费的,其实Express已经够用了,代码提示虽然没有装了VC助手的VS好,但尚可接受,另我非常喜欢的ViEmu插件在Express中不能用,这个可以通过配置键盘方案为emacs来弥补——2010.11.01:express里的emacs键绑定没这个XKeymacs好用!。Express没包含ATL和MFC,但现在最新版的WDK却已经支持到ATL71和MFC42了。其实写个简单的MFC程序MFC42已经足够,甚至不需要静态链接MFC,因为其它机子98以上就有mfc42.dll了,这样编译出来的程序将更小 。使用ATL71可能需要静态链接,因为其它机子上可能没有ATL71.DLL。但是好在虽然WTL使用了ATL但编译出来的程序并没有链接ATL库,所以配置下Express可以拿来写WTL程序。
配置WTL环境很简单的,可以参考codeproject上的文章。下面说说怎么使用WDK中的toolchain编译出只跟VC6一样的可执行程序。
WDK的bin目录中的cl.exe对C++的支持比VC6好多了,但是它编译出来的程序却只链接msvcrt.dll,有点奇怪但是程序并不能运行,据说这个msvcrt.dll是vista上的版本,那这就不奇怪了。正当我要放弃时发现了这个贴子,它里面的方法正好有用:《d大能不能给个VC2008链接msvcrt.dll的详细教程》http://tieba.baidu.com/f?kz=739007330
到此ATL+WTL+MFC环境都有了,而且生成的程序只需要链接msvcrt.dll和msvcp60.dll等——反正跟VC6生成的文件差不多的效果,但是对C++支持又比VC6好很多的(VC6编译string就比较吃力了,map就更甚了)。
主要是VC Directories的配置,对于msvcrt_win2000.obj,可以把它加入到D:\Program Files\Microsoft Visual Studio 9.0\VC\VCProjectDefaults\CoreWin.vsprops里,但是编译MFC程序时又要手动添加到link addtional lib中。
所需:WDK最新版,PSDK2003R2,WTL最新版本(sourceforge.net上的),配置见图:
bin目录,编译toolchain所需要的所有工具,清单工具mt.exe要用到PSDK2003里的——2010.11.01:再添加express的路径,某些MFC程序要用到bscmake.exe——(如果编译提示spawning什么的就是缺少那个工具,可以到相关目录搜索):



include目录,最好跟编译配套,所以使用WDK中的,PSDK提供了mfc的res:



lib目录,一些如psapi需要PSDK里的lib:



项目里设置C++ Code Generation(代码生成)为/MD,如果用了MFC则设置为shared mfc dll,如果生成的可执行文件提示无法定位msvcrt.dll上的函数的话,就添加msvcrt_win2000.obj到link的lib中。2010.11.01:一些MFC程序如果提示无法定位except_common4什么的需要手动加msvcrt_win2000.obj!
Release版本按上面弄基本上没什么问题,Debug可能需要更多设置,但我只关心Release版本。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: