| Autor |
Nachricht |
JossBoss
Unregistrierter
|
JossBoss Unregistrierter
09: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: 18195
|
SideWinder Moderator
11: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 16:29:01 17.09.2005, insgesamt 1-mal bearbeitet |
|
 |
JossBoss
Unregistrierter
|
JossBoss Unregistrierter
12: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: 18195
|
SideWinder Moderator
13: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
15: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
15: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: 18195
|
SideWinder Moderator
16: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
10: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
13: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
13: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 |
|
|
|
 |