www.mikrocontroller.net

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


Autor: Smart (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Matheguru L. (matheguru)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Andre R. (ryan87)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Ak Tronik (aktronik)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Ak Tronik (aktronik)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wow, dann muss der Dollar aber noch stark fallen ;-)


MfG

Ak Tronik

Autor: Smart (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Andre R. (ryan87)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Smart (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Andre R. (ryan87)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.