Frage

Ich habe ein ATL COM-Projekt, das in VC6 wurde kompilieren Geldbuße, die die folgenden Linkfehler gibt, wenn in VS2008 erstellt.

  

Fehler LNK2005: „void * __cdecl   operator new (unsigned int)“   (?? 2 @ @ YAPAXI Z) bereits definiert in   libcmt.lib (new.obj) File: uafxcw.lib

Es gibt drei weitere ähnliche Fehler für delete, new[] und delete[].

überprüfte ich mehrere Artikel über das Netz und die meisten von ihnen sagen, dass es ein Konflikt zwischen CRT und MFC-DLLs. (Reihenfolge, in der sie aufgenommen werden). Ein Artikel legt nahe, Hinzufügen des Konflikt lib zum ignorieren lib Liste in Projekteinstellungen.

Damit ich links mit einem Fehler:

  

Fehler LNK2001: extern   Symbol __afxForceEXCLUDE Datei: LMAN.Lib

Die Fehlerpunkte auf einen lib, die von diesem Projekt (a lib entwickelte von uns) verwiesen wird.

Alle Ideen, wie dieses Problem beheben? Ich bin sicher, dies würde ein häufiges Problem für Menschen tun Migration auf VS 2008.

War es hilfreich?

Lösung

Gelöst es.

Es war nicht auszuschließen uafxcw.lib erforderlich. sicherzustellen, mußte nur, dass der MFC-DLLs nicht verwendet wurde. Unser lib LMAN.lib wurde mit Afxdisp.h (einem MFC-DLL), die nicht erforderlich war. Ich entfernte die von diesem Projekt gehört und dann voila! - build gelang

.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top