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

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

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

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

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...