Veröffentlicht 13. Juni 200718 j 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
13. Juni 200718 j Autor 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?
13. Juni 200718 j Die MFC-DLLs enthalten bereits eine DllMain-Funktion. Wenn du in einer DLL die MFC verwendest, darfst du keine eigene DllMain-Funktion haben.
14. Juni 200718 j Autor 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
14. Juni 200718 j 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
14. Juni 200718 j Autor 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]
14. Juni 200718 j 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]
14. Juni 200718 j Autor ja mich wundert nur warum den gleichen cod bei anderem Projektem problem läuft :eek
14. Juni 200718 j 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.
14. Juni 200718 j Autor 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 ?
14. Juni 200718 j 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.
14. Juni 200718 j Autor Ok verstanden, die DLL soll kein UNICODE benutzen, was kann/muss ich einstellen bzw. beachten damit die dll UNICODE frei ist?
14. Juni 200718 j 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.
14. Juni 200718 j Autor 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?
14. Juni 200718 j Hast du noch irgendwo (im Code oder in den Projekteinstellungen für den Präprozessor) UNICODE oder _UNICODE definiert?
15. Juni 200718 j Autor 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
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.