0

我认为自己对 MFC 非常敏锐,但我最近遇到了一个问题,我无法在网上找到修复程序,也无法自己追踪它......

问题是,我年初写的一些代码,由于一个 iOS 项目的出现而被搁置,所以我花了大约 5 个月的时间来写,现在我准备回去了到最后一个项目,但它似乎遭受了 Code Rot 的影响。

问题是,这不是 Code Rot,实际上我的 Build Env 有问题。我正在使用VS2008,出于各种原因,无论如何这不应该成为问题的焦点。

当我创建一个 DEFAULT C++ MFC (Native) 应用程序时,只需创建项目,然后在向导上点击 FINISH,然后 BUILD 它,编译器编译第一个 CPP 文件时出现错误。它似乎可以很好地编译 stdafx.cpp,其中包括所有 AFX 标头,但最终发生的是我收到“CDocument”未定义的错误......现在,我知道足够多的 MFC,这不应该是。 ..

我检查了所有路径,包括 INCLUDE、LIB 等等,它们都指向本质上是什么

c:\Program Files\Microsoft Visual Studio 9.0\VC\ATLMFC\INCLUDE;c:\Program Files\Microsoft Visual Studio 9.0\VC\INCLUDE

以及一些用于 Windows SDK 的包含,等等。我得到的错误显示 AFXWIN.H 来自 ATLMFC\INCLUDE 文件夹。

所以,到此为止,我不得不假设我可能还有其他问题?更新了一些 MFC DLL 或 LIB,它们可能不应该有?

当我尝试从我的 VS2008 Team Foundation DVD (en_visual_studio_team_system_2008_team_suite_x86_x64wow_dvd_X##-####) 安装 ISO 或 DVD 时,当我尝试启动修复模式时出现错误...

我不知道有任何扩展的日志文件可能有助于追踪这一点。(至于尝试“修复”我的VS2008安装时安装程序中的错误是什么,至少......)

我在 Win7、x86 上运行,没有启用 UAC。有没有其他人遇到过这样的问题?

多谢你们。

4

1 回答 1

0

我发现了问题,而且很糟糕,我什至不想回答这个问题,但我认为我更好,因为这可能发生在其他人身上。

这整个问题发生在我编辑一个根本不使用 MFC 的项目时,但它被加载到一个确实使用 MFC 的项目的 WORKSPACE 中。有一次,我为 Document to XmlDocument 做了一个“在文件中查找和替换”。好吧,我几乎不知道,它会转到我的 INCLUDE 路径,并在那里更新文件。所以,我的 MFC“CDocument”在 afxwin.h 文件中变成了“CXmlDocument”。(以及 afxwin.inl)。我花了很多时间才找到这个,因为大约 6 个月前我被放弃了那个项目。我回来处理使用 MFC 和 waddaya 知道的原始项目。代码腐烂。好吧,从那以后我的电脑发生了很多变化,所以我想安装了一些新版本的 MFC,或者其他什么。所以,我去搜索VS2010的包含路径的CXmlDocument,它不存在!所以,我想,“好吧.. CXmlDocument 不是一个合法的 MFC 类。” 因此,我找到了 CDocument 在 VS2010 中的声明位置,并将其与 VS2008 中的内容相匹配。就在那时,我开始意识到发生了什么。所以,我用 CDocument 和 BAM 替换了所有 CXmlDocument 实例!代码编译得很好...

所以,今天孩子们的教训是,如果你在文件中进行搜索和替换,要小心你使用的设置,并密切注意修改了哪些文件!

我很抱歉每个人都阅读了这个问题并浪费了任何时间阅读它,但是我非常感谢尝试帮助我解决这个问题。谢谢你们/女孩。

于 2012-12-27T20:21:34.987 回答