Forum: PC-Programmierung DLL in Visual C++ einbinden


von Smart (Gast)


Lesenswert?

hallo member,

kann mir jemand sagen, wie man eine bestehende DLL in eine Applikation 
einbindet und kompiliert? ich bekomme beim starten der Anwendung zur 
Zeit eine Fehlermeldung dass die Anwendung nicht gestartet werden 
konnte, weil die DLL nicht gefunden wurde. Neuinstallation der Anwendung 
solll das problem beheben können (so microsoft)
Ich habe die DLL, die .Lib und die .h datei da aber ich weiss nicht wo 
die hingehören oder wie die mitkompiliert werden müssen. Vielleicht kann 
mir da jemand weiterhelfen... benutze übrigens MS Visual studio 2005 pro
Danke im voraus, schönen abend und lg
Smart

von Matheguru L. (matheguru)


Lesenswert?

Indem du die passende Header_datei einbindest die zur DLL gehört!
Das geht mit #include<deine_header_datei.h> oder wie meinst du das?
welche DLL willst du einbinden?
G. Paul

von Thomas (Gast)


Lesenswert?

headerfile hast du wohl drin, sonst wuerde es nicht kompilieren.
Du musst allerdings die import-library (.lib) in den projektoptionen 
eintragen.
Ich glaube, es war unter "additional dependencies", genau kann ich es 
dir morgen sagen, wenn noch benoetigt.
Die DLL selbst muss zur exe und/oder in einen systemordner wie 
system32/drivers.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

> ich bekomme beim starten der Anwendung zur
> Zeit eine Fehlermeldung dass die Anwendung nicht
> gestartet werden konnte, weil die DLL nicht gefunden wurde.

Die Fehlermeldung zeigt, daß korrekt compiliert und auch mit der zur DLL 
gehörenden Importlibrary gelinkt wurde. Allerdings steht die DLL nicht 
im Pfad und auch nicht in dem Verzeichnis, in dem das .exe-File steht. 
Daher kann das OS beim Laden der Anwendung die DLL nicht finden - und 
quittiert das mit o.g. Fehlermeldung.

Abhilfe: Entweder DLL in ein Verzeichnis packen, das im Pfad 
(Environmentvariable %PATH%) aufgeführt ist oder aber in das 
Verzeichnis, in dem der Compiler das .exe-File ablegt.

von Andre R. (ryan87)


Lesenswert?

Verschieb mal die DLL in den Ordner wo auch deine Quelldateien liegen. 
Das ist bei VS 2005 normalerweise der Ort an dem die Anwendung 
ausgeführt wird wenn du sie aus dem VS startest.

von Ak T. (aktronik)


Lesenswert?

Hallo

ich habe Smart so verstanden, dass er die DLL als Bestandteil seiner 
*.exe mitkompilieren möchte.

So dass die DLL in der *.exe steckt.

Wie das geht, würde ich auch gern wissen !!!

Man kann aber auch ohne *.lib  und ohne *.h während der Laufzeit auf 
eine DLL zugreifen.

Wie das geht ist hier zu sehen:

http://www.codeproject.com/KB/DLL/Execute_DLL_Function.aspx

Aber wie gesagt. Interessanter ist es eine DLL wie eine statisch 
verknüpfte Bibliothek in die *.exe einzubinden.

MfG

Ak Tronik

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

> ich habe Smart so verstanden, dass er die DLL als Bestandteil seiner
> *.exe mitkompilieren möchte.
>
> So dass die DLL in der *.exe steckt.
>
> Wie das geht, würde ich auch gern wissen !!!

So etwas geht, wenn überhaupt, nur mit Tools wie 
http://www.binary-soft.com/dll2lib/dll2lib.htm

von Ak T. (aktronik)


Lesenswert?

Wow, dann muss der Dollar aber noch stark fallen ;-)


MfG

Ak Tronik

von Smart (Gast)


Lesenswert?

Hi Leute,

vielen Dank für die Antworten. Das Problem sollte ich so langsam behoben 
haben, allerdings habe ich nun fragen zum Erstellen einer Windows 
Applikation genauer Windows-Form, vielleicht kann mir da auch jemand 
Helfen?
Ich verstehe einfach nicht, wie ich zb meinem Fenster oder meiner Form 
mitteilen kann, dass wenn ich zb ein Button anklicke, dann soll im 
Textfeld was angezeigt werden. Ich bin kein C++ Newbie aber in Sachen 
Windowsprogrammierung (Graphische Oberfläche) sind es meine ersten 
Gehversuche, allerdings finde ich es jetzt schon extrem schwierig, da 
irgendwas auf die Beine zu stellen.
Mein Vorhaben ist erstmal simpel, ich möchte den FT232 bzw FT245 
USB-Seriell chip einfach über 8 Häkchen(Combobox) oder einer Listbox 
oder sonst was PortPins setzen können, die dann über eine virtuelle 
serielle Schnittstelle gesendet werden. Bibliotheken zum Senden und 
Empfangen in einer Consolenanwendung habe ich nun begriffen und 
erfolgreich benutzt, allerdings ist das mit der Winprogrammierung 
erstmal sehr hart, ohne Tutorials. Da ich nicht weiss, ob ich den code 
so in meine Windowsform einsetzen kann.
Ich finde die MSDN-Referenzen von Microsoft auch sehr unübersichtlich 
und nicht wirklich für den Einstieg geeignet. Vielleicht hat ja jemand 
sowas schon mal gemacht und würde sein Code veröffentlichen oder 
vielleicht auch nur schnipsel preigeben wollen, egal welche Sprache? 
Schlag und Suchwörter würden mir auch schon helfen. Im Moment Suche ich 
vergebens nach Windows Form...
Vielen Dank nochmal und schonmal :-) und LG
Smart

von Andre R. (ryan87)


Lesenswert?

Such mal nach wxWidgets (mein Favorit) oder Qt. Damit kannst du 
platformübergreifend GUIs entwickeln. Und das auch noch recht einfach 
und mit vielen Tutorials im Netz.

von Smart (Gast)


Lesenswert?

Vielen Dank Andre,

hab wxwidgets schon gezogen von sourceforge wenn ich mich recht 
erinnere, aber irgendwie komme ich damit nicht so klar, bzw weiss ich 
nicht wie ich da anfange, was wo wie starte.
Bei "Qt" werde ich mich gleich mal auf die Suche machen....
Danke nochmal und Gruss
Smart

von Andre R. (ryan87)


Lesenswert?


Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.