在Visual Studio 6.0上编译MFC

时间:2009-08-18 19:13:18

标签: mfc vc6

我正在痛苦地调试传统的VS 6.0 MFC应用程序,我真的想进入MFC代码。现在,代码确实附带VS6和符号(mfc42.pdb),但调试器断言

  

'符号已加载(源信息已删除)'

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

我目前正在尝试重新编译MFC以获取代码视图符号(是的,情况是 绝望)。我尝试了Daniel Howard的this精彩演练,但我不断碰到以下链接器错误:

  

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

CTime在TIMECORE.cpp中实现,它确实没有实现这样的运算符。我找不到运营商用户。

任何人都对此有任何见解? 任何间接建议都会很棒。

2 个答案:

答案 0 :(得分:3)

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

步入MFC代码是必须的。 MFC代码是必看的。它同时让你谦虚和愤怒。

答案 1 :(得分:1)

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