SDI Projekt -> wo dll einbinden?

code404

Mitglied
Hy Leute,

ich habe ein SDI-Projekt und möchte eine dll einbinden. Die dll stellt verschiedene Funktionen zur Berechnung von Werten zur Verfügung. Nun stellt sich mir die Frage wo ich die dll überhaupt einbinden muss? Wenn ich sie in der Doc - Klasse lade würde die dll ja auch bei jeden „Neu“ neu geladen, was ja Ressourcenverschwendung ist oder? Also dachte ich mir, das ich die dll in der App. - Klasse einbinde, weiß aber leider nicht wie ich von da auf der Daten der Doc – Klasse zugreifen kann. Vielleicht ist aber auch mein ganzer Ansatz falsch?

Besten Dank
 
So wie du die Frage gestellt hast gehe ich davon aus, dass du die DLL via LoadLibrary() dynamisch laden willst. Zu einem LoadLibrary() gehört auch ein FreeLibrary(), mit der die DLL nach ihrer Benutzung wieder freigegeben wird. Wenn die DLL als immer wieder korrekt entladen wird, stellt sich das Problem der Ressourcenverschwendung nicht.
Allerdings ist es natürlich unsinnig, während der Laufzeit der Applikation die DLL ständig zu laden und entladen. Da bietet es sich an, die DLL in einer zentralen Klasse, wie z.B. der Applikationsklasse oder dem MainFrame, beim Programmstart zu laden und am Ende wieder freizugeben.

Auf die das Applikations-Objekt und das MainFrame-Objekt kann problemlos von jeder Stelle im Projekt aus zugreifen: mit AfxGetApp() sowie AfxGetMainWnd().
 

Neue Beiträge

Zurück