Compilando MFC no Visual Studio 6.0
Pergunta
Estou dolorosamente depuração um legado VS 6.0 aplicativo MFC, e eu realmente gostaria de passo em código MFC. Agora, o código fez navio com VS6, e os símbolos (mfc42.pdb) também, mas o depurador afirma
'símbolos carregados (informação da fonte despojado)'
sobre anexando. Por estas dicas , todas as cópias do Mfc42 PDB na minha máquina está realmente despojado (seu tamanho é 1.5M-2M, longe de 10M). Eu recebo pilhas significativas, mas não sou capaz de passo no código MFC.
Atualmente estou tentando re-compilação MFC para obter símbolos CodeView (sim, a situação é que desparate). Eu tentei seguir este bom passo a passo por Daniel Howard, mas eu continuo batendo nos erros seguinte vinculador:
... delayimp.lib Criando biblioteca .. \ lib \ MFC42.LIB e objeto .. \ lib \ mfc42.exp mfc42.exp: LNK2001: não resolvidos símbolo externo "public: int __thiscall CTime :: operator == (classe CTime) const" (?? 8CTime @@ QBEHV0 @@ Z) mfc42.exp: LNK2001: não resolvidos símbolo externo "public: int __thiscall CTime :: operator = (classe CTime) const" (?? 9CTime @@ QBEHV0 @@ Z) mfc42.exp: Erro LNK2001: Símbolo externo não resolvido "pública: int __thiscall CTime const :: operator <(classe CTime)" (?? MCTime @@ QBEHV0 @@ Z) mfc42.exp: Erro LNK2001: Símbolo externo não resolvido "pública: int __thiscall CTime :: operator> (classe CTime) const" (?? OCTime @@ QBEHV0 @@ Z) MFC42.DLL: Erro fatal LNK1120: 4 externos não resolvidos
CTime foi implementado em TIMECORE.cpp, que na verdade não implementar tais operadores. Eu não conseguia localizar os utilizadores do operador.
Qualquer um tem qualquer visão sobre isso? Algum conselho indireto seria grande demais.
Solução
É definido em AFX.INL em VC98 \ MFC \ Include \ AFX.INL. Você provavelmente já adicionado apenas o .cpp ao seu projeto.
Entrando no código MFC é um deve ter. código MFC é um must see. Isso faz você humilde e raiva ao mesmo tempo.
Outras dicas
A minha memória é geralmente muito ruim e isso foi há muito tempo, mas eu me lembro que uma versão das bibliotecas compilado e ligado para a depuração foi uma das opções adicionais da VC6 ++ instalador.