bigpoint Geschrieben 13. Juni 2007 Geschrieben 13. Juni 2007 Ich habe eine DLL (Standart Windows / Unicode) in (MFC in a Shared / Multi-Byte Character ) Bei dem umstellung kommt folgenden Fehler vor: mfcs80ud.lib(dllmodul.obj) : error LNK2005: _DllMain@12 already defined in MyProject.obj wenn ich die mfcs80ud.lib in Linker->Input->Ignore Specific Library eingebe bekomme ich milionen von Fehler's: MyProject.obj : error LNK2001: unresolved external symbol __afxForceEXCLUDE Hat jemand eine Idee, bin wirklich verzweifelt Zitieren
bigpoint Geschrieben 13. Juni 2007 Autor Geschrieben 13. Juni 2007 kann es sein, dass das Programm noch irgendwie unicod einstellungen bezieht? Wie kann ich am besten überprüfen bzw. was muss ich bei so einer umstellung beachten? Zitieren
Klotzkopp Geschrieben 13. Juni 2007 Geschrieben 13. Juni 2007 Die MFC-DLLs enthalten bereits eine DllMain-Funktion. Wenn du in einer DLL die MFC verwendest, darfst du keine eigene DllMain-Funktion haben. Zitieren
bigpoint Geschrieben 14. Juni 2007 Autor Geschrieben 14. Juni 2007 Die MFC-DLLs enthalten bereits eine DllMain-Funktion. Wenn du in einer DLL die MFC verwendest, darfst du keine eigene DllMain-Funktion haben. ja, das ist es Danke Leider komme ich von einem Problem zum anderem :eek In das Projekt muss ich eine Lib einbinden, sobald ich es tue bekomme ich Fehler: error C2308: concatenating mismatched strings Zitieren
Klotzkopp Geschrieben 14. Juni 2007 Geschrieben 14. Juni 2007 Du versuchst anscheinend, ein normales und ein Wide-Character-Stringliteral aneinanderzuhängen. Das geht nicht. Für genauere Hilfe wäre es von Vorteil, wenn du den Code zeigst Zitieren
bigpoint Geschrieben 14. Juni 2007 Autor Geschrieben 14. Juni 2007 nach ein Info, IC_ARGUMENT_ASSERT ist so definiert #define IC_ARGUMENT_ASSERT(COND) (void) ( (COND) || (McArgumentException::Throw(_T("IC_ARGUMENT_ASSERT("#COND")"), __FILE__, __LINE__), 0) ) [/PHP] Zitieren
Klotzkopp Geschrieben 14. Juni 2007 Geschrieben 14. Juni 2007 Die hinteren Teile des Strings müssen auch das _T-Makro benutzen: #define IC_ARGUMENT_ASSERT(COND) (void) ( (COND) || (McArgumentException::Throw(_T("IC_ARGUMENT_ASSERT("_T(#COND)_T(")")), __FILE__, __LINE__), 0) ) [/code] Zitieren
bigpoint Geschrieben 14. Juni 2007 Autor Geschrieben 14. Juni 2007 ja mich wundert nur warum den gleichen cod bei anderem Projektem problem läuft :eek Zitieren
Klotzkopp Geschrieben 14. Juni 2007 Geschrieben 14. Juni 2007 ja mich wundert nur warum den gleichen cod bei anderem Projektem problem läuft :eekSolange du kein Unicode benutzt, klappt das so, weil dann das _T-Makro einfach nichts tut. Zitieren
bigpoint Geschrieben 14. Juni 2007 Autor Geschrieben 14. Juni 2007 Wenn ich es aber so umschreibe bekomme ich an der gleiche stelle Fehler: error C2665: 'McMyException::Throw' : none of the 3 overloads could convert all the argument types und eigentlich sollte das obere Beispiel so nichst funktionieren ? Zitieren
Klotzkopp Geschrieben 14. Juni 2007 Geschrieben 14. Juni 2007 error C2665: 'McMyException::Throw' : none of the 3 overloads could convert all the argument typesOffenbar kann McArgumentException::Throw nichts mit Wide-Character-Strings anfangen. Da ich die Methode nicht kenne, kann ich dazu nicht mehr sagen. Zitieren
bigpoint Geschrieben 14. Juni 2007 Autor Geschrieben 14. Juni 2007 Ok verstanden, die DLL soll kein UNICODE benutzen, was kann/muss ich einstellen bzw. beachten damit die dll UNICODE frei ist? Zitieren
Klotzkopp Geschrieben 14. Juni 2007 Geschrieben 14. Juni 2007 Ok verstanden, die DLL soll kein UNICODE benutzen,Davon habe ich nichts gesagt. was kann/muss ich einstellen bzw. beachten damit die dll UNICODE frei ist?Das kannst du nicht "einstellen". Du kannst nur das Mapping von TCHAR und den dazugehörigen Makros beeinflussen. Stell den Zeichensatz auf Multi-Byte. Zitieren
bigpoint Geschrieben 14. Juni 2007 Autor Geschrieben 14. Juni 2007 Das kannst du nicht "einstellen". Du kannst nur das Mapping von TCHAR und den dazugehörigen Makros beeinflussen. Stell den Zeichensatz auf Multi-Byte. habe ich eben längst gemacht, gibt es noch was zu beachten? Zitieren
Klotzkopp Geschrieben 14. Juni 2007 Geschrieben 14. Juni 2007 Hast du noch irgendwo (im Code oder in den Projekteinstellungen für den Präprozessor) UNICODE oder _UNICODE definiert? Zitieren
bigpoint Geschrieben 15. Juni 2007 Autor Geschrieben 15. Juni 2007 Hast du noch irgendwo (im Code oder in den Projekteinstellungen für den Präprozessor) UNICODE oder _UNICODE definiert? ja, in jede cpp Datei bei Präprozessor Vielen Dank Klotzkopp, du hast mir wieder sehr geholfen :uli Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.