DLLs direkt durch Abhängigkeiten verbinden?
-
Das kannst du beim Anlegen eines neuen Projektes festlegen. Entweder exe oder eben dll (ich empfehle die Erweiterungs DLL, ist aber situationsabhängig).
-
Bei den DLL-Projekten geht:
Win32 Dynamic-Link Library
Win32 Bibliothek (statisch)Was soll ich nehmen?
Und muss ich das DLL Projekt irgendwie extra programmieren, damit ich mit der EXE darauf zugreifen kann?
Bin da nicht auf dem Stand.MfG AV
-
Das zu erklären wird zu viel.
Guck bitte mal Forum, da gibt es bestimmt schon was.
In dem Zusammenhang sollten Begriffe wie:
MFC Erweiterungsdll
delcspec
export
import
libauftauchen.
Sollte ich Montag online kommen und sehen, dass du noch nix gefunden hast, dann gucke ich mal.

-
Nagut, danke.

Ich glaube, ich weiß nun, was ich tun muss, mit declspec und dllexport habe ich seinerzeit schon gearbeitet, war aber jetzt nicht sicher, ob man das hier auch verwenden kann oder ob hier eine völlig andere Methode von Nöten ist.

Jetzt habe ich nurnoch schnell die Frage ob statisch oder dynamisch eine DLL ist, die mit LIB verwendet wird und nicht durch Extracode geladen werden muss.
MfG MAV
-
Hi
"Win32 Bibliothek (statisch)":
Der Quellcode der Bibliothek ist in einer .lib Datei gespeichert. Wenn du deine .exe Datei kompilierst, wird der Quellcode in die .exe Datei eingebunden.
Du hast also am Schluss nur eine Datei: die .exe"Win32 Dynamic-Link Library":
Der Quellcode ist und bleibt in der .dll Datei. Wenn dein Programm gestartet wird, läd es den Inhalt der .dll in den Speicher.
Die .dll muss also in dem Verzeichnis der .exe Datei vorhanden sein (oder im Windowsverzeichnis).Grüße Rapha
-
Achja
nicht durch Extracode geladen werden muss.
Wenn du die "Win32 Dynamic-Link Library" auf abhängig stellst, brauchst du dich nicht um das Laden der dll in den Speicher zu kümmern.
Grüße Rapha
-
Hm, also wenn ich die DLL abhängig von der EXE mache?
Und wie muss ich es DANN machen, wenn ich mich nicht extra drum kümmern muss?

-
Hi
Wenn du die dll kompilierst, wird auch eine .lib erstellt. In dieser lib sind anstatt den "richtigen" Funktionen nur Funktionsrümpfe, die code zum laden der dll enthalten. Mach es also so:
Compiliere die dll, für die (somit auch erstellte) .lib deinem .exe-Projekt hinzu und includiere die Header der dll in deinem .exe Projekt. Dein Programm wird aber natürlich nur starten, wenn die dll in dem Verzeichnis der .exe vorhanden ist.Grüße Rapha
-
Hm, das mit den Headern finde ich zwar ein wenig doof, aber geht nicht anders.
Muss die DLL wirklich im EXE-verzeichnis vorhanden sein, kann dies nicht zum testen auch ein anderes Verzeichnis sein?MfG MAV
-
Sie kann auch im Windows Verzeichnis (WINNT/Windows) oder im Windows-System-Verzeichnis (z.b. Windows\System) sein.
-
Naja, ich dachte es jetzt so:
C:\Arbeitsverzeichnis\
C:\Arbeitsverzeichnis\DLL
C:\Arbeitsverzeichnis\EXEUnd das fertige Programm muss zwar die DLL im selben Ordner haben...
Ach egal, das werde ich dann schon selber arusfinden.

Danke.
MfG MAV
-
Du kannst ja einstellen, wo die exe/dll Datei erstellt wird. Stell doch einfach die Ordner gleich ein.
-
Genial, darauf muss man erstmal kommen.

