| Autor |
Nachricht |
JossBoss
Unregistrierter
|
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???
thx |
|
|
|
 |
SideWinder
Moderator
Benutzerprofil
Anmeldungsdatum: 19.10.2001
Beiträge: 18218
|
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
|
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??
thx |
|
|
|
 |
SideWinder
Moderator
Benutzerprofil
Anmeldungsdatum: 19.10.2001
Beiträge: 18218
|
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
|
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
|
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
|
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
|
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??
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
|
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
|
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
|
SideWinder Moderator
14:10:56 18.09.2005 Titel: |
|
Zitieren |
|
 |
AJ
Moderator
Benutzerprofil
Anmeldungsdatum: 11.10.2001
Beiträge: 3727
|
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
|
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
|
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 |
|
|
|
 |
AJ
Moderator
Benutzerprofil
Anmeldungsdatum: 11.10.2001
Beiträge: 3727
|
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  |
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
|
SideWinder Moderator
21:45:51 18.09.2005 Titel: |
|
Zitieren |
|
 |
DilBahadur
Mitglied
Benutzerprofil
Anmeldungsdatum: 11.08.2010
Beiträge: 40
|
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? |
|
|
|
 |