Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

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 :(

Geschrieben

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?

Geschrieben
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

Geschrieben

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 :rolleyes:

Geschrieben

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]

Geschrieben

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]

Geschrieben
ja mich wundert nur warum den gleichen cod bei anderem Projektem problem läuft :eek
Solange du kein Unicode benutzt, klappt das so, weil dann das _T-Makro einfach nichts tut.
Geschrieben

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 ?

Geschrieben
error C2665: 'McMyException::Throw' : none of the 3 overloads could convert all the argument types
Offenbar kann McArgumentException::Throw nichts mit Wide-Character-Strings anfangen. Da ich die Methode nicht kenne, kann ich dazu nicht mehr sagen.
Geschrieben
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.
Geschrieben

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?

Geschrieben
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

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 erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...