2009-08-18 88 views
0

我很痛苦地调试了遗留的VS 6.0 MFC应用程序,我真的很想进入MFC代码。现在,将码确实附带VS6,和符号(mfc42.pdb)太多,但调试器在附接断言在Visual Studio 6.0上编译MFC

'加载符号(剥离源信息)'

。通过these提示,我的机器上mfc42.pdb的所有副本都被剥离(它们的大小为1.5M-2M,远远不到10M)。我获得了有意义的堆栈,但无法步入MFC代码。

我目前正试图重新编译MFC以获取codeview符号(是的,情况是,即绝望)。我尝试以下由丹尼尔·霍华德this不错的演练,但我一直碰到下面的链接错误:

... DELAYIMP.LIB 创建库.. \ LIB \ MFC42.LIB和对象.. \ LIB \ mfc42.exp mfc42.exp:error LNK2001:无法解析的外部符号“public:int __thiscall CTime :: operator ==(class CTime)const”(?? 8CTime @@ QBEHV0 @@ Z) mfc42.exp:error LNK2001 :无法解析的外部符号“public:int __thiscall CTime :: operator!=(class CTime)const”(?? 9CTime @@ QBEHV0 @@ Z) mfc42.exp:error LNK2001:无法解析的外部符号“public:int __thiscall CTime: :运算符<(class CTime)const“(?? MCTime @@ QBEHV0 @@ Z) mfc42.exp:error LNK2001:无法解析的外部符号“public:int __thiscall CTime :: operator>(class CTime)const”(?? OCTime @@ QBEHV0 @@ Z) mfc42.DLL:致命错误LNK1120:4个未解析的外部

CTime在TIMECORE.cpp中实现,它确实没有实现这样的操作符。我找不到操作员用户。

任何人都有这方面的见解? 任何间接的建议也会很好。

回答

3

它在VC98 \ MFC \ Include \ AFX.INL的AFX.INL中定义。 您可能只会将.cpp添加到您的项目中。

步入MFC代码是必须的。 MFC代码是必须看到的。它让你在同一时间变得谦虚和生气。

1

我的记忆通常很糟糕,而且这是很久以前的事了,但我似乎记得为调试编译和链接的一个版本的库是VC6 ++安装程序的附加选项之一。

+0

谢谢曼尼。 VC6 ++的确带有MFC42d.dll和类似的东西,如果这就是你的意思 - 但我需要生产版MFC42.dll的完整符号(codeview)。你还记得安装*那*吗? 我再次检查您的回复 - 有这个MFC安装组件称为“源浏览器”。添加它似乎没有什么区别,并且使用Google搜索表明它可能是某种对象浏览器/智能感知的前身。 – 2009-08-18 21:25:01