Pergunta

Eu tenho um projeto ATL COM que estava compilando bem em VC6 que dá os seguintes erros vinculador quando compilado no VS2008.

LNK2005 de erro: "void * __cdecl novo operador (unsigned int)" (?? 2 @ YAPAXI @ Z) já definido na LIBCMT.LIB (new.obj) Arquivo: UAFXCW.LIB

Há três erros mais semelhantes para delete, new[] e delete[].

I-out vários artigos sobre a rede ea maioria deles dizem que é um conflito entre CRT e MFC DLLs. (Ordem na qual eles são apanhados). Um artigo sugere adicionando a lib conflitantes à lista de ignorados lib em configurações do projeto.

Se o fizer, eu fiquei com um erro:

LNK2001 de erro: não resolvido externo Arquivo símbolo __afxForceEXCLUDE: LMAN.Lib

Os pontos de erro para uma lib que é referenciado por este projecto (a lib desenvolvido por nós).

Algumas ideias sobre como consertar isso? Estou certo de que este seria um problema comum para as pessoas que fazem a migração para o VS 2008.

Foi útil?

Solução

resolveu.

Não foi necessário excluir UAFXCW.LIB. Só tinha de garantir que as DLLs de MFC não foram utilizados. Nossa lib LMAN.lib estava usando Afxdisp.h (uma dll MFC), que não era necessário. Eu removi a incluir a partir desse projeto e, em seguida, voila! - construção sucedido

.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top