Hypercell ein ] Hypercell aus ] Zeige Navigation ] Verstecke Navigation ]
c++.de  
   
Forentreff 2012     
Bücher-Shop mit Amazon (Buchkategorien)C++ : Referenzen zu C++ : C++ Builder : Visual C++ : C# : Java : Spieleprogrammierung : Systemprogrammierung Linux : Software-Entwicklung : .NET : Compilertechnik : Algorithmen & Datenstrukturen : Objektorientierung : Entwurfsmuster : UML : eXtreme Programming : Scrum : Projektmanagement : Software-Testing : Datenbanken : Tom DeMarco : Dilbert : User Friendly
C/C++ Forum :: DOS und Win32-Konsole ::  Dlls und Libs einbinden     Zeige alle Beiträge auf einer Seite Auf Beitrag antworten
Autor Nachricht
JossBoss
Unregistrierter




Beitrag JossBoss Unregistrierter 10:57:53 17.09.2005   Titel:   Dlls und Libs einbinden            Zitieren

Hallo wie der titel schon sat, könnte mir jemand sagen, wie man die dlls und libs in den code integrieren kann?
gehts mit #using oder wie??? :confused:
thx :D
SideWinder
Moderator

Benutzerprofil
Anmeldungsdatum: 19.10.2001
Beiträge: 18218
Beitrag SideWinder Moderator 12:06:10 17.09.2005   Titel:              Zitieren

Mit Header-Dateien der Libs includierst du die Deklarationen der enthaltenen Funktionen. Den Code selbst (also die fertige Lib) musst du dem Linker bekanntgeben, dass er aus ihr ebenfalls Code beziehen kann -> je nach Compiler (ok, eigentlich je nach Linker, aber bei den meisten Compilern wird ein Linker bereits mitgeliefert) geht man da anders vor.

DLLs sind etwas schwieriger. Du hast lädst mit Hilfe der WinAPI die Funktionen zur Laufzeit (Siehe MSDN unter DLLs, vor allem: GetModuleHandle(), GetProcAddress() sind gute Adressen). Kannst aber beim VC++ auch für die DLL ein Export-Definitions-File erstellen damit der Compiler weiß was in der DLL liegt und er führt den Ladevorgang über eine zusätzlich zur DLL erstellen Lib durch (Edit: funktioniert natürlich nur wenn du den Source der DLL hast).

MfG SideWinder

_________________
http://www.dilbert.com/2009-06-11/
http://www.dilbert.com/2009-06-14/


Zuletzt bearbeitet von SideWinder am 17:29:01 17.09.2005, insgesamt 1-mal bearbeitet
JossBoss
Unregistrierter




Beitrag JossBoss Unregistrierter 13:48:54 17.09.2005   Titel:              Zitieren

Und wie sieht das einbinden von libs aus?? und für dlls muss man einfach eine der beiden funktionen benutzen die du genannt hast wenn ich richtig verstehe?? :confused:
thx
SideWinder
Moderator

Benutzerprofil
Anmeldungsdatum: 19.10.2001
Beiträge: 18218
Beitrag SideWinder Moderator 14:00:03 17.09.2005   Titel:              Zitieren

1. Wie gesagt, je nachdem was du für einen Compiler benützt (Welchen?) sieht das Einbinden von Libs unterschiedlich aus.

2. Ja, wobei Möglichkeit 2 wie gesagt nur beim VC funktioniert (andere Compiler bieten eventl. ncoh andere Möglichkeiten).

Wenn du jetzt aber endlich deinen Compiler bekannt gibst kann ich dich ins richtige Forum verschieben wo man dir sicher alles detailliert zeigen kann ;)

MfG SideWinder

_________________
http://www.dilbert.com/2009-06-11/
http://www.dilbert.com/2009-06-14/
JossBoss
Unregistrierter




Beitrag JossBoss Unregistrierter 16:19:18 17.09.2005   Titel:              Zitieren

AA k thx :)
Also ich benutz den VC++ NET 2003
Sag bloss noch etwas: die 2 ,methoden die du mir erwähnt hast kann man die auch ausserhalb der winapi verwenden?
AJ
Moderator

Benutzerprofil
Anmeldungsdatum: 11.10.2001
Beiträge: 3727
Beitrag AJ Moderator 16:19:26 17.09.2005   Titel:              Zitieren

Bei DLLs gibts zwei Arten, wie man sie einbindet:

1. Du hast die Header- und Libdatei für die DLL, die du nutzen willst und diese bindest du wie jede andere Header- und Libdatei ein. (normaler Weg)

2. Es gibt eine WinAPI-Funktion, um eine DLL dynamisch zu laden. Diese heißt LoadLibrary(). Eine detailierte Beschreibung findest du auch hier in der MSDN und natürlich auch die restlichen Funktionen, die du brauchst.


Um eine Libdatei einzubinden, reicht es bei den meisten IDEs, wenn du die Datei zu den Projektdateien in deinem Projekt hinzufügst. Im Quellcode muss nur die passende Headerdatei stehen.

_________________
Moderator im ANSI C Forum und im DOS und Win32-Konsole Forum
SideWinder
Moderator

Benutzerprofil
Anmeldungsdatum: 19.10.2001
Beiträge: 18218
Beitrag SideWinder Moderator 17:30:12 17.09.2005   Titel:              Zitieren

Zitat:

kann man die auch ausserhalb der winapi verwenden?

Nein, du kannst die WinAPI-Benutzung über die Library verdecken, aber ohne Windows-System-Aufrufe funktioniert das nicht. DLLs gibts aber sowieso in der Form nur unter Windows (Das Konzept gibts natürlich auf vielen Betriebssystemen).

MfG SideWinder

_________________
http://www.dilbert.com/2009-06-11/
http://www.dilbert.com/2009-06-14/
JossBoss
Unregistrierter




Beitrag JossBoss Unregistrierter 11:35:06 18.09.2005   Titel:              Zitieren

Sagt mal was sind eigentlich dlls?? und libs sind ja aus obj dateien zusammengesetzt aber was steht in eienr obj datei?? :confused:
soll ich libs am besten mit
C/C++ Code:
#pragma(lib,"mylib.lib")
C/C++ Code:
#pragma(lib,"mylib.lib")
C/C++ Code:
#pragma(lib,"mylib.lib")

einbinden oder wie?
AJ
Moderator

Benutzerprofil
Anmeldungsdatum: 11.10.2001
Beiträge: 3727
Beitrag AJ Moderator 14:06:36 18.09.2005   Titel:              Zitieren

Nein, das ist die schlechteste Lösung.

Ich hab doch schon geschrieben, dass du die Libdateien nur deinen Projektdateien hinzufügen brauchst.

_________________
Moderator im ANSI C Forum und im DOS und Win32-Konsole Forum
jossBoss
Unregistrierter




Beitrag jossBoss Unregistrierter 14:09:35 18.09.2005   Titel:              Zitieren

ja aber wie geht das denn nun?? übwer die Projekteinstellungen und dann da einfügen oder wie meinst de das wenn ja dann is gut ;)
thx
SideWinder
Moderator

Benutzerprofil
Anmeldungsdatum: 19.10.2001
Beiträge: 18218
Beitrag SideWinder Moderator 14:10:56 18.09.2005   Titel:              Zitieren

Jo Projekteinstellungen -> Linker -> Irgendwo hier :D

Zum Unterschied LIB<->DLL benütz bitte die Suchfunktion, wurde schon so oft erklärt :)

MfG SideWinder

_________________
http://www.dilbert.com/2009-06-11/
http://www.dilbert.com/2009-06-14/
AJ
Moderator

Benutzerprofil
Anmeldungsdatum: 11.10.2001
Beiträge: 3727
Beitrag AJ Moderator 14:22:06 18.09.2005   Titel:              Zitieren

jossBoss schrieb:
ja aber wie geht das denn nun?? übwer die Projekteinstellungen und dann da einfügen oder wie meinst de das wenn ja dann is gut ;)
thx


Hast du schon mal ein Projekt gemacht mit mehreren Dateien? Wenn ja, dann weißt du wie man Dateien dem Projekt hinzufügt.

_________________
Moderator im ANSI C Forum und im DOS und Win32-Konsole Forum
Lyrix
Mitglied

Benutzerprofil
Anmeldungsdatum: 01.07.2005
Beiträge: 693
Beitrag Lyrix Mitglied 17:17:03 18.09.2005   Titel:              Zitieren

Gibt es eigentlich ein detaliertes Ebook zum Erstellen/Einbinden/... von DLLs?

_________________
A programmer is just a tool which converts caffeine into code.

www.lyrix-soft.de
JossBoss
Unregistrierter




Beitrag JossBoss Unregistrierter 18:13:15 18.09.2005   Titel:              Zitieren

sag mal sidewinder könntest du mir einen link für die threads geben wenn möglich, denn mit der suche lande ich immer bei diesem hier :D
AJ
Moderator

Benutzerprofil
Anmeldungsdatum: 11.10.2001
Beiträge: 3727
Beitrag AJ Moderator 20:47:57 18.09.2005   Titel:              Zitieren

Lyrix schrieb:
Gibt es eigentlich ein detaliertes Ebook zum Erstellen/Einbinden/... von DLLs?


Das hängt ganz vom Compiler ab. Wobei es da meistens recht ähnlich ist. Wenn es um den Quellcode geht, dann sollte dieser natürlich immer gleich aussehen. Dazu gibts sicherlich Tutorials im Netz.

Was das Erstellen angeht, sollte es bei deiner IDE die Möglichkeit geben ein entsprechendes Projekt auszuwählen (also dann wenn du entscheidest, ob du eine Konsolenanwendung, GUI, ... machen willst). Beim Compilieren und Linken wird dann normalerweise eine .lib- und eine .dll-Datei erzeugt.

Das Einbinden hängt normalerweise vom Linker ab und wie du die DLL einbindest. Bei der dynamischen Variante musst du hald die WinAPI benutzen, ansonsten brauchst du die Header- und Libdatei. Die Headerdatei gehört wie gewohnt in den Quellcode eingebunden und die Libdatei muss dem Linker bekannt gemacht werden (also beim Linken entweder mit angeben oder hald zu den Projektdateien hinzufügen).

JossBoss schrieb:
sag mal sidewinder könntest du mir einen link für die threads geben wenn möglich, denn mit der suche lande ich immer bei diesem hier :D


Welche Suchwörter benutzt du denn?

_________________
Moderator im ANSI C Forum und im DOS und Win32-Konsole Forum
SideWinder
Moderator

Benutzerprofil
Anmeldungsdatum: 19.10.2001
Beiträge: 18218
Beitrag SideWinder Moderator 21:45:51 18.09.2005   Titel:              Zitieren

Kann schon sein, der Suchindex ist derzeit Mist. Verwende die darüber angezeigte Google-Suche.

MfG SideWinder

_________________
http://www.dilbert.com/2009-06-11/
http://www.dilbert.com/2009-06-14/
DilBahadur
Mitglied

Benutzerprofil
Anmeldungsdatum: 11.08.2010
Beiträge: 40
Beitrag DilBahadur Mitglied 19:24:23 02.09.2010   Titel:              Zitieren

Ich hab hier nen code weis aben nicht ob der richtig ist:

#include <sfml-audio.dll>
int main() {
}

sfml-audio.dll steht bei mir unter ressourcendateen ist das auch richtig?
C/C++ Forum :: DOS und Win32-Konsole ::  Dlls und Libs einbinden   Auf Beitrag antworten

Zeige alle Beiträge auf einer Seite




Nächstes Thema anzeigen
Vorheriges Thema anzeigen
Sie können Beiträge in dieses Forum schreiben.
Sie können auf Beiträge in diesem Forum antworten.
Sie können Ihre Beiträge in diesem Forum nicht bearbeiten.
Sie können Ihre Beiträge in diesem Forum nicht löschen.
Sie können an Umfragen in diesem Forum nicht mitmachen.

Powered by phpBB © 2001, 2002 phpBB Group :: FI Theme

c++.de ist Teilnehmer des Partnerprogramms von Amazon Europe S.à.r.l. und Partner des Werbeprogramms, das zur Bereitstellung eines Mediums für Websites konzipiert wurde, mittels dessen durch die Platzierung von Werbeanzeigen und Links zu amazon.de Werbekostenerstattung verdient werden kann.

Die Vervielfältigung der auf den Seiten www.c-plusplus.de, www.c-plusplus.info, www.c-sar.de, www.c-plusplus.net und www.baeckmann.de enthaltenen Informationen ohne eine schriftliche Genehmigung des Seitenbetreibers ist untersagt (vgl. §4 Urheberrechtsgesetz). Die Nutzung und Änderung der vorgestellten Strukturen und Verfahren in privaten und kommerziellen Softwareanwendungen ist ausdrücklich erlaubt, soweit keine Rechte Dritter verletzt werden. Der Seitenbetreiber übernimmt keine Gewähr für die Funktion einzelner Beiträge oder Programmfragmente, insbesondere übernimmt er keine Haftung für eventuelle aus dem Gebrauch entstehenden Folgeschäden.