?
Hi !!
Ich versteh nicht warum du über Paris von München nach Rom fährst ??
#pragma comment (lib, "mydll.dll")
Ist eigentlich nicht gültig, soviel ich weiss....
Wenn du eine DLL schreibst, wird eine ExportBibliothek angelegt, wenn du deine
Funktionen exportierst. (sonst sind sie ja nicht nutzbar).
Wenn du also deine "Client-Andwendung" schreibst, werden die Symbole mit Hilfe dieser Lib befriedigt und die DLL beim start der Anwendung automatisch gesucht und geladen. Beim beenden (oder später) wird diese dann automatisch entladen.
Falls du die Adressen der DLL mit GetProcAdress manuell lädst, dann solltest du
Sie mit FreeLibary() tatsächlich wieder freigeben. Allerdings bevorzuge ich die erste Version, ausser es handelt sich um eine Plugin DLL oder sowas in die Richtung.
rya.
Scorcher24
p.s.:
Zum epxortieren von Funktionen kannst Du dieses nette Macro im Header anlegen. (Muss beim Client eingebunden werden:
#if defined (DLL_EXPORTS)
#define EXPORT __declspec dllexport
#else
#define EXPORT __declspec dllimport
#endif
Das stellt sicher, dass beim einbinden der Header die Funktion oder Klasse importiert, beim kompilieren exportiert wird.
Natürlich musst du die Funktionen (Klassen) dementsprechen markieren (und DLLEXPORTS im DLL-Projekt definieren)
EXPORT void Foo( int a, int b );
class EXPORT bar
{
public:
bar();
~bar();
};