Visual Studio 2008 Express MFC支持
众所周知,Visual Studio 2008的Express版本不包括对MFC的支持以及编译许多Windows程序所需的其他一些软件包。
所以,这是我的问题:
我拥有完整版的Visual Studio2005. 我一直在用它来编译我的一个朋友正在从事的项目,以便我可以为他进行测试并继续跟踪错误和事物。最近,他将该项目升级到了VS 2008,而我没有。因此,我下载了Express版本,希望可以对此进行编译,但是没有运气,它抱怨左右缺少标题。
在我看来,由于我已经拥有VS 2005的完整版本,因此我肯定会至少有一些(可能是较旧的)文件版本存在疑问,他的项目需要针对该文件进行编译。
有什么办法可以说服VS 2008在2005的目录中查找要编译的包含文件和库文件?
此外,这是一个坏主意吗?我真的不希望外出购买VS 2008完整版,因为我永远不会自己使用它。 (2005年目前对我来说做得很好,无论如何我还是倾向于选择GCC。)
谢谢
解决方案
我们可以直接从命令行使用VC ++编译器,也可以直接在Visual Studio 2005中创建带有源代码的新项目。除非他使用的是2008 / 2008sp1的新版MFC / ATL中提供的某些功能,否则我们应该能够编译项目就好了。
请参阅Visual Studio 2005中的"从现有源创建项目"。不幸的是,它们没有在Express Edition中包含这些库。
使用Visual Studio 2005中的vcvars * .bat脚本。有关VC ++博客的信息,请参见此博客文章。我们将使用旧的编译器,但使用Visual Studio 2008的生成系统。
我们可以进入"工具">"选项">"项目和解决方案">" VC ++目录"
并更改Include,Library和Source(可能还有Reference?)文件夹以使用VC ++ 2005的文件夹。
我猜我们只是将$(VCInstallDir)替换为硬编码的VS 2005路径。在执行此操作之前,我已记录了原始值。
但是,我们是否刚刚尝试使用OLD 2005 sln和vcproj文件?继续使用2005和2008. 为每个IDE保留两组这些文件。库不匹配将引起任何问题,我们不能通过将2008的工具与2005的库一起使用来避免这种情况。
解决此问题的简单方法是将解决方案和项目文件从源代码控制恢复到其Visual Studio 2005状态(我们使用的是源代码控制吗?)。此时,只要朋友不使用任何仅mfc 9的函数,就可以编译项目。
我要尝试的第一件事是通过仅修改.sln和.vcproj文件的版本将其加载到VS 2005中。在.vcproj中,将版本从9.00更改为8.00,在.sln中,将格式版本从10.00更改为9.00。
如果我们在项目中没有花哨的东西,则很有可能像这样使用它。同样,这将避免必须更新2个项目和解决方案文件。
仅作记录,我已经做到了(通过在IDE内部修改include目录和库目录),并且运行良好,我拥有MFC,ATL和其他所有功能。
在此网站上,显示了如何使用Visual Studio Express版本编译MFC代码:
关联