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
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?
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.
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
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
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]
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]
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
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.
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 ?
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.
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?
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.
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?
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?
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
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden