Narf! Geschrieben 23. Mai 2018 Geschrieben 23. Mai 2018 Hallo an alle, nach einem Update von VC++ Redist (2015) fehlt diese dll in den Systemordnern. Ich brauche die, um ein externes Programm aufzurufen. Kann ich irgendwie diese dll statisch in mein Projekt einbinden, um diesen Fehler zu umgehen? Grüße aus Leipzig Narf! Zitieren
Whiz-zarD Geschrieben 23. Mai 2018 Geschrieben 23. Mai 2018 Offenbar muss Microsoft Visual C++ 2010 SP1 Redistributable Package nachinstalliert werden. Zitieren
Gast D-eath Geschrieben 23. Mai 2018 Geschrieben 23. Mai 2018 Eine DLL wird übrigens zur Laufzeit geladen, daher der Name Dynamic Link Library. Du kannst die Datei höchstens mit in deinem Projekt ausliefern, wobei dann die Frage ist, ob nicht andere Komponenten fehlen. Faktisch werden die Befehle, die dein Programm von der DLL verwendet, "ausgelesen" und dann von einem DLL-Loader des Betriebssystems nachgeladen, indem die Speicheradressen der Befehle nach dem Laden in dein Programm "eingefügt" werden. Das ist komplizierter, hat aber den Vorteil, dass du nur die DLL austauschen musst bei Änderungen und die Größe deiner ausführbaren Datei sich verringert. Willst du Code aus einer Bibliothek mitliefern, ohne eine DLL zu erstellen, musst du eine statische Bibliothek erstellen, deren Inhalte dann durch den Linker zur ausführbaren Datei dazu gelinkt werden. Die Datei ist dann größer, du musst bei jeder Änderung deine ausführbaren Datei rekompilieren, es ist aber einfacher und unter gewissen Umständen auch die einzige Möglichkeit, Code aus einer Bibliothek mehrfach gleichzeitig laufen zu lassen. Zitieren
Narf! Geschrieben 28. Mai 2018 Autor Geschrieben 28. Mai 2018 (bearbeitet) Hallo, das externe Programm war mit "dynamische Verbindung" kompiliert ?. Habe das auf statisch geändet, und es läuft. Danke für Eure Tipps. Bearbeitet 28. Mai 2018 von Narf! Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.