dll dllexport/dllimport
-
hi
ich möchte eine dll erstellen und meinen header nicht ändern.dazu habe ich sehr oft das gefunden:
#ifdef BUILD_DLL #define DLL __declspec(dllexport) #else #define DLL __declspec(dllimport) #endifbei mir wird aber immer importiert.....
wieso das?(so oft wie ich das gefunden habe müsste das ja stimmen)
und wieso soll das eigendlich funktionieren? (ich habe ja niergens ein #define BUILD_DLL..... daher wird doch immer dllimport genutzt.)
-
Hallo,
BUILD_DLL ist wahrscheinlich in den Projekteigenschaften des DLL-Projektes gesetzt.
Ansonsten kannst Du auch AFX_EXT_CLASS nutzen

Gruss
foo
-
ok ich wollte jetzt
#define DLL AFX_EXT_CLASS ..... class DLL Logfile......benutzen.
allerdings wird mir jetzt angegeben:
"Logfile": Sieht wie eine Funktionsdefinition aus, es ist aber keine Parameterliste vorhanden; sichtbarer Funktionstext wird übersprungen.und wenn ich zur deffinition von AFX_EXT_CLASS springen will, dann lande ich direkt bei
class DLL Logfilewas mache ich falsch?
-
class AFX_EXT_CLASS CMyClass { }Gruss
foo
-
die punkte stehen nur für noch mehr quelltext....
#define DLL AFX_EXT_CLASS ..... class DLL Logfile{......}ich habe danach natürlich noch den rest der klasse.
und es macht keinen unterschied, ob ich
#define DLL AFX_EXT_CLASS ..... class DLL Logfile{......}oder
class AFX_EXT_CLASSLogfile{......}schreibe.
-
class AFX_EXT_CLASS CMyClass { // <body of class> };das ist fast identisch mit dem aus msdn, aber ich bekomme den fehler:
error C2470: "CMyClass": Sieht wie eine Funktionsdefinition aus, es ist aber keine Parameterliste vorhanden; sichtbarer Funktionstext wird übersprungen.was mache ich falsch?
-
ok habs jetzt anders geregelt....
#ifdef MY_BUILD_DLL #define DLL __declspec(dllexport) #else #define DLL __declspec(dllimport) #endifMY_BUILD_DLL muss im präprozessor deffiniert werden