2010-12-27 4 views
0

Ich versuche, Bibliothek libcurl in meiner Anwendung zu verwenden. Wenn ich meine Anwendung starte, fragt sie nach libcurl.dll und zlib1.dll , um in demselben Ordner zu existieren. wenn ich sie addiere alles funktioniert gut, aber ich möchte sie in die ausführbare Datei enthalten.fügen Sie zwei DLLs zu msvc 2010 Anwendung

alt text

Wie kann ich die Anwendung beiden DLL statisch hinzufügen?

Antwort

1

Sie können DLLs nicht statisch in eine ausführbare Datei einbinden. Der Zweck dynamischer Bibliotheken ist es, während der Laufzeit von einem externen Image (DLL-Datei) dynamisch geladen zu werden. Sie sollten überprüfen, ob curl und zlib richtige statische Bibliotheken zur Verfügung stellen und eine Verbindung zu ihnen herstellen, anstatt lib-Stubs für die dlls.

Berücksichtigen Sie, dass die Verknüpfung mit statischen externen Bibliotheken Ihre Binärdatei möglicherweise anfällig für Sicherheitsprobleme in statisch verknüpften Blobs macht. Das bedeutet, dass Sie alle Binärdateien aktualisieren müssen, die Sie statisch mit diesen Bibliotheken verknüpft haben, anstatt die Bibliotheken selbst zu aktualisieren.

+0

Also verwende ich derzeit eine nicht statische Bibliothek? – Tom

+0

Visual Studio versteht zwei Arten von Link-Bibliotheken: reine statische lib-Dateien, die direkt in das Ergebnis der Kompilierung eingebunden sind, oder "stub" -bib-Dateien, die einfach Anfragen an die entsprechende DLL-Datei weiterleiten. Sie benutzen das letztere. Ich habe für Sie die MSVC-Zip von libcurl auf http://curl.haxx.se/download.html untersucht und es gibt eine statische lib-Datei im lib-Ordner. Sie müssen es anstelle dessen angeben, was Sie gerade in den Projekteigenschaften haben. Gleiches gilt für die zlib-Datei. – damg

+0

hey damg danke für alles. – Tom

Verwandte Themen