2009-08-18 3 views
0

Я мучительно отлаживаю устаревшее приложение VS 6.0 MFC, и мне очень хотелось бы войти в код MFC. Теперь код сделал корабль с VS6 и символы (mfc42.pdb) тоже, но отладчик утверждаетКомпиляция MFC на Visual Studio 6.0

'Символы загружены (информация источника раздели)'

на прикрепление. К these советам все копии mfc42.pdb на моей машине действительно лишены (их размер составляет 1,5 М-2 М, нигде около 10 М). Я получаю значимые стеки, но не могу войти в код MFC.

В настоящее время я пытаюсь перекомпилировать MFC для получения символов кода (да, ситуация , что desparate). Я попытался следующие this хороший пошаговом Даниэль Ховард, но я постоянно натыкаясь на следующие ошибки компоновщика:

... delayimp.lib Создание библиотеки .. \ Lib \ mfc42.LIB и объект .. \ LIB \ mfc42.exp mfc42.exp: ошибка LNK2001: неразрешенный внешний символ "public: int __thiscall CTime :: operator == (класс CTime) const" (?? 8CTime @@ QBEHV0 @@ Z) mfc42.exp: ошибка LNK2001 : unresolved external symbol "public: int __thiscall CTime :: operator! = (класс CTime) const" (?? 9CTime @@ QBEHV0 @@ Z) mfc42.exp: ошибка LNK2001: неразрешенный внешний символ "public: int __thiscall CTime: : оператор < (класс 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, которая на самом деле не реализует такие операторы. Я не мог найти пользователей оператора.

У кого-нибудь есть понимание этого? Любые косвенные советы были бы замечательными.

ответ

3

Он определен в AFX.INL в VC98 \ MFC \ Include \ AFX.INL. Возможно, вы добавили только .cpp в свой проект.

Выполнение кода MFC является обязательным. Код MFC обязательно должен видеть. Это делает вас смиренным и сердитым одновременно.

1

Моя память, как правило, довольно плохая, и это было давно, но я, похоже, помню, что версия библиотек, скомпилированных и связанных для отладки, была одной из дополнительных опций установщика VC6 ++.

+0

Thanks Manni. VC6 ++ действительно поставляется с MFC42d.dll и подобными, если это то, что вы имеете в виду, - но мне нужны полные символы (codeview) для производственной версии MFC42.dll. Вы помните, что устанавливаете *, что *? Я снова проверил ваш ответ - этот компонент установки MFC назывался «Source Browser». Добавление его, похоже, не имеет особого значения, а поиск в googling указывает на его, вероятно, своего рода предшественник браузера/intellisense. –

Смежные вопросы