4

许多人可能都知道,Visual Studio 2008 的 Express 版本不包括对 MFC 和编译大量 Windows 程序所需的一些其他包的支持。

所以,这是我的问题:

我有完整版的 Visual Studio 2005。我一直在用它来编译我的一个朋友正在做的一个项目,这样我就可以为他测试它并继续跟踪错误和事情。最近,他将该项目升级到 VS 2008,而我没有。所以,我下载了 express 版本,希望我可以简单地用它编译,但不走运,它抱怨标题左右丢失。

在我看来,既然我已经拥有了 VS 2005 的完整版本,那么我肯定至少有一些(可能是较旧的)有问题的文件版本,他的项目需要针对这些文件进行编译。

有没有一种方法可以说服 VS 2008 也在 2005 的目录中查找包含文件和库文件以进行编译?

此外,这是一个坏主意吗?我真的不想出去购买完整的VS 2008,因为我自己永远不会使用它。(目前,2005 年对我来说做得很好,而且我还是更喜欢 GCC。)

谢谢

4

8 回答 8

1

您可以直接从命令行使用 VC++ 编译器,或者只是在 Visual Studio 2005 中使用源代码创建一个新项目。除非他使用的是 2008/2008sp1 新版本的 MFC/ATL 中提供的某些功能,否则您应该能够编译项目就好了。

请参阅 Visual Studio 2005 中的(“从现有源创建项目”)。不幸的是,它们没有在 Express Edition 中包含这些库。

于 2008-09-27T02:45:16.783 回答
1

处理此问题的简单方法是将解决方案和项目文件从源代码控制恢复到其 Visual Studio 2005 状态(您正在使用源代码控制吗?)。此时,只要您的朋友不使用任何 mfc 9 独有的功能,您就可以编译项目。

于 2008-09-27T22:32:38.537 回答
1

使用 Visual Studio 2005 中的 vcvars*.bat 脚本。请参阅VC++ 博客中的这篇博文了解如何操作。您将使用旧的编译器,但使用 Visual Studio 2008 的构建系统。

于 2008-09-27T08:34:47.737 回答
1

您可以进入 Tools>Options>Projects and Solutions>VC++ 目录并更改 Include、Library 和 Source(可能还有 Reference?)文件夹以使用 VC++ 2005 的文件夹。

我猜你只是用硬编码的 VS 2005 路径替换 $(VCInstallDir) 。在执行此操作之前,我会记录原始值。

但是,您是否尝试过使用 OLD 2005 sln 和 vcproj 文件?继续在你的一端使用 2005,在他的一端使用 2008。为每个 IDE 保留两组这些文件。任何问题都将与库不匹配有关——通过将 2008 年的工具与 2005 年的库一起使用,您无法避免这种情况。

于 2008-09-27T16:06:52.503 回答
1

我要尝试的第一件事是通过修改 .sln 和 .vcproj 文件的版本在 VS 2005 中加载它。在 .vcproj 中将版本从 9.00 更改为 8.00,在 .sln 中将格式版本从 10.00 更改为 9.00。

如果您在项目中没有花哨的东西,那么您很有可能能够像这样使用它。这也将避免必须更新 2 个项目和解决方案文件。

于 2008-10-03T15:19:22.527 回答
1

在这个网站上,它展示了如何使用 Visual Studio Express 版本编译 MFC 代码: 链接

于 2009-06-14T12:45:45.510 回答
0

只是为了记录,我已经做到了(通过从 IDE 内部修改包含目录和库目录)并且它工作得很好,我有 MFC、ATL,一切。

于 2009-03-12T11:13:05.123 回答
0

我找到了这个解释。http://www.codeproject.com/Articles/30439/How-to-compile-MFC-code-in-Visual-C-Express

于 2012-08-14T12:13:06.123 回答