dllexport/dllimport automatisch (DLL/APP)?
-
Hey!
Wie könnte ich ein Makro definieren, welches in einer DLL __declspec(dllexport) animmt und in einer Anwendung __declspec(dllimport)?
_DLL fällt weg, weil ich immer MT/MTd code generation verwende.Oder ist es egal, wenn in dem Header der Anwendung dllexport steht? Funktionieren tut es, aber ich glaube, dass der Compiler dann nicht so gut optimieren kann.
Danke schonmal!
MFG
-
#ifdef DLLEXPORT #define DLLAPI __declspec(dllexport) #else #define DLLAPI __declspec(dllimport) #endif
-
Sorry, äh ich verwende Visual Studio.
Meinst du, ich soll selbst #define DLLEXPORT schreiben? Aber wenn ich es im DLL-Header schreibe, ist es doch auch in der Anwendung.
Und geht das nicht irgendwie automatisch?
-
Und außerdem gehört das ins Visual Studio Forum, sorry

-
omg dann definiers halt bevor du den header includest :omg:
-
Umständlich, und wenn ich vergesse?
Welchen Effekt hat es eigentlich, wenn im Anwendungsheader dllexport anstatt dllimport steht?
-
DLLs sind Angelegenheit des Linkers. Der Compiler kann da nicht viel optimieren, da es sich um externe Referenzen handelt. Als Programmierer hast Du jedoch die Wahl einer frühen oder späten Einbindung. Für beides stehen wiederum verschiedene Methoden zur Verfügung. Mache es einfach!
-
Was?
Also macht es keinen Unterschied, ob im Header in der Anwendung jetzt dllexport oder dllimport steht? Es geht jedenfalls mit beiden, und auch ohne.
Aber in der DLL muss halt dllexport stehen.Ich mache garnix einfach so, ohne zu wissen, was passiert.
-
Declspec0r schrieb:
Umständlich, und wenn ich vergesse?
Welchen Effekt hat es eigentlich, wenn im Anwendungsheader dllexport anstatt dllimport steht?
lies es selbst nach. stichworte: pe, import/export table.
-
Nö. Ich hoffe auf eine schlichte, weiterführende Antwort.
-
nö