JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.phpMedaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

LIB erstellen?
Gehe zu Seite 1, 2  Weiter
 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Entwicklung
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
TheMillenium
Dark JLI'ler



Anmeldedatum: 21.07.2002
Beiträge: 1427
Wohnort: World
Medaillen: Keine

BeitragVerfasst am: 03.08.2004, 15:58    Titel: LIB erstellen? Antworten mit Zitat

Ich habe das Topic "DLL erstellen" verfolgt und hab mir dann vorgestellt wie schön es doch wäre, wenn ich eine neue Engine programmiere, die in eine DLL einzubauen. Bei dem Spiel selber, einfach die DLL Laden, paar Funktionen erstellen: PreFrame(); Frame(); und PostFrame(); und da könnte ich alles reinpacken. Hab dann aber gelesen, dass DLL Aufrufe von der längeren Dauer der Aufrufe nur für normale Windows Anwendungen zu empfehlen sind. Dann müssten LIBS, die wir ja auch im mit DX einbinden deutlich schneller sein...Wenn man mit Google aber nach Tutorials nach Libs sucht, finde ich aber keine...
Ist das dann fast genauso schnell wenn ich ne LIB einbinde, als wenn ich den ganzen Code in der LIB in meinem Projekt als Module aufgteilt hätte?
Wie erstelle ich Libs?
Und gibt es eine Möglichkeit, die Funktionen in den Libs noch zu überladen, wenn ich solche Rechte setzten kann? Oder muss ich die LIB dann nochmal neukompilieren?

Wie man sieht kenne ich mich mit dem Thema noch gar nicht aus... Sad
Ich hoffe aber, dass sich das bald ändert! Smile
_________________
The source of all power is in its destiny...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Fallen
JLI MVP
JLI MVP


Alter: 41
Anmeldedatum: 08.03.2003
Beiträge: 2860
Wohnort: Münster
Medaillen: 1 (mehr...)

BeitragVerfasst am: 03.08.2004, 16:03    Titel: Antworten mit Zitat

Wenn du nur ne lib und ne h bei dir einbinden willst damit es funktioniert (wie bei fmod oder directx) dann hier:

http://www.codeproject.com/cpp/libfromdll.asp
_________________
"I have a Core2Quad at 3.2GHz, 4GB of RAM at 1066 and an Nvidia 8800 GTS 512 on Vista64 and this game runs like ass whereas everything else I own runs like melted butter over a smokin' hot 18 year old catholic schoolgirl's arse."
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Jonathan_Klein
Living Legend


Alter: 37
Anmeldedatum: 17.02.2003
Beiträge: 3433
Wohnort: Siegerland
Medaillen: Keine

BeitragVerfasst am: 03.08.2004, 16:34    Titel: Antworten mit Zitat

also normale libs, die die keine dll haben, sind einfach nur vorkompilierte Dateien die der Linker dann zu den andern dazu packt. Warum man die libs bei dll's braucht weiß ich nicht so genau, vieleicht stehen da ja Infos über die dll drin.
_________________
https://jonathank.de/games/
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Chewie
Super JLI'ler



Anmeldedatum: 17.07.2003
Beiträge: 382

Medaillen: Keine

BeitragVerfasst am: 03.08.2004, 17:44    Titel: Antworten mit Zitat

Jonathan_Klein hat Folgendes geschrieben:
Warum man die libs bei dll's braucht weiß ich nicht so genau, vieleicht stehen da ja Infos über die dll drin.

so ist das, glaub ich. ich denke, die lib braucht der compiler/linker beim entwickeln, und die fertige dll wird dann von der ausführbaren datei benötigt. sprich, nur mit einer lib kann man glaub ich nichts angfangen.

die alternative wäre eine static library, wo die dll praktisch in die ausführbare datei hineingepackt wird. pack deine engine stinknormal in eine dll, schließlich machts dx auch so.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
TheMillenium
Dark JLI'ler



Anmeldedatum: 21.07.2002
Beiträge: 1427
Wohnort: World
Medaillen: Keine

BeitragVerfasst am: 03.08.2004, 19:57    Titel: Antworten mit Zitat

DX macht das doch mit Libs?
Auf jeden Fall im Compiler...

Allerdings werden bei der DX Installation (nicht SDK) auch DLLs installiert...mich würde nur interessieren, wieviel langsamer diese Version ist....mit Lib & Dll gegenüber der alles in einem Projekt, Engine von eigenem Spiel nicht richtig getrennt Variante...
_________________
The source of all power is in its destiny...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Chewie
Super JLI'ler



Anmeldedatum: 17.07.2003
Beiträge: 382

Medaillen: Keine

BeitragVerfasst am: 03.08.2004, 20:16    Titel: Antworten mit Zitat

die dx runtime besteht nur aus dlls. da is keine einzige lib dabei. wie gesagt, mit einer lib kann ein programm nichts anfangen, die braucht nur der compiler in irgendeiner art und weise.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
The Lord of Programming
Living Legend


Alter: 37
Anmeldedatum: 14.03.2003
Beiträge: 3122

Medaillen: Keine

BeitragVerfasst am: 03.08.2004, 21:37    Titel: Antworten mit Zitat

Ist das für eine Lib nicht genau die selbe Prozedur wie für eine DLL?
Also was ich gelesen habe, erstellt man eine .lib-Datei und eine .dll gleichzeitig. Dann kann man eben auswählen, ob mans lieber dynamisch(dll) oder statisch bzw. über die Linkereinstellungen(lib) haben will.
Das stand doch sogar auf der Seite, die jemand in dem DLL-Thread gepostet hat Wink
_________________
www.visualgamesentertainment.net
Current projects: RDTDC(1), JLI-Vor-Projekt, Tetris(-Tutorial), JLI-Format
(1) Realtime Developer Testing and Debugging Console


Anschlag, Anleitung zum Atombombenbau, Sprengkörper...
Hilf Schäuble! Damit er auch was findet...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Sören
JLI Master Trainee



Anmeldedatum: 26.07.2002
Beiträge: 647
Wohnort: Bonn
Medaillen: Keine

BeitragVerfasst am: 04.08.2004, 02:05    Titel: Antworten mit Zitat

Jonathan_Klein hat Folgendes geschrieben:
also normale libs, die die keine dll haben, sind einfach nur vorkompilierte Dateien die der Linker dann zu den andern dazu packt. Warum man die libs bei dll's braucht weiß ich nicht so genau, vieleicht stehen da ja Infos über die dll drin.

Der Sinn der Sache ist, das man den kompilierte Code von mehreren Anwendungen aus laden können soll. zB: du hast ein spiel und einen leveleditor, nun könntest du die Klassen die beide benutzen in eine DLL packen und beide können ihnen nutzen, ohne dass er quasi doppelt existiert.
Die lib braucht man sozusagen für das eigene Programm, damit es "weiß" was es benutzt(also zum kompilieren). Wink
Die lib enthält quasi die gesamte "Aufstellung" der Klassen und Funktionen der dll.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
TheMillenium
Dark JLI'ler



Anmeldedatum: 21.07.2002
Beiträge: 1427
Wohnort: World
Medaillen: Keine

BeitragVerfasst am: 04.08.2004, 07:41    Titel: Antworten mit Zitat

Ich habe gedacht sowas würde schon durch den Header gelöst?
_________________
The source of all power is in its destiny...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
fowly
JLI'ler



Anmeldedatum: 25.01.2004
Beiträge: 196
Wohnort: Detmold - NRW
Medaillen: Keine

BeitragVerfasst am: 04.08.2004, 09:20    Titel: Antworten mit Zitat

TheMillenium hat Folgendes geschrieben:
Ich habe gedacht sowas würde schon durch den Header gelöst?


ja, aber dann musst du ja die klassen die du doppelt benutzt auch doppelt kompilieren, und die machen auch zweimal die exe größer. bei der dll sind die sachen die beide anwendungen brauchen eben ausgelagert und die beiden exes sind kleiner.
_________________
<-- Noch in der Entwicklungsphase: http://www.uranus-entertainment.de -->

Das Spiel zu unserer Schule:

http://www.grabbe-game.de
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
TheMillenium
Dark JLI'ler



Anmeldedatum: 21.07.2002
Beiträge: 1427
Wohnort: World
Medaillen: Keine

BeitragVerfasst am: 04.08.2004, 09:26    Titel: Antworten mit Zitat

Wenn ich nur den Header einbinde?
_________________
The source of all power is in its destiny...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
fowly
JLI'ler



Anmeldedatum: 25.01.2004
Beiträge: 196
Wohnort: Detmold - NRW
Medaillen: Keine

BeitragVerfasst am: 04.08.2004, 13:09    Titel: Antworten mit Zitat

aso Embarassed sorry ich hab dein post eben falsch verstanden...
_________________
<-- Noch in der Entwicklungsphase: http://www.uranus-entertainment.de -->

Das Spiel zu unserer Schule:

http://www.grabbe-game.de
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
C++Builder
Senior JLI'ler



Anmeldedatum: 04.10.2003
Beiträge: 235

Medaillen: Keine

BeitragVerfasst am: 08.08.2004, 11:58    Titel: Antworten mit Zitat

Dann hast du ja nur die Prototypen der Funktionen und der Funktionsrumpf fehlt. Der steht nämlich in der .lib.

In der DX-Runtime sind nur DLL's weil DX-Spiele die brauchen. Aber um Spiele damit zu entwickeln brauchst du die .lib's. Schließlich schreibst du bei nem neuen Projekt ja in Projekt->Einstellungen-> Linker->Objekt-/Biliothek-Module: d3d.lib und dinput8.lib und so dazu oder irre ich?

In der Lib steht dann praktisch das drinne was du normaler weise in die .cpp schreibst. Dann includierst du die .h in dein Projekt fügst die .lib zu deinem Projekt hinzu und compilierst. Wenn du jetzt dein Programm starten willst wird die DLL benötigt die so heißt wie die Lib also brauchst du d3d.dll und dinput8.dll nur sind die in irgend einem Systemordner und du die findet Windoof von alleine.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
TheMillenium
Dark JLI'ler



Anmeldedatum: 21.07.2002
Beiträge: 1427
Wohnort: World
Medaillen: Keine

BeitragVerfasst am: 08.08.2004, 13:13    Titel: Antworten mit Zitat

Ja, das hab ich befürchtet.

Irgendwann hab ich mal als Test sowas gemacht und brauchte keine blöde dlll...

Gibt es keine Möglichkeit dass sich die (lib und dll) mit der exe "verschmilzt"?

Ich will einfach statt tausend cpps und hs einzubinden einfach nur eine Datei einbinden. Dann ist es viel übersichtlicher und es ist nicht möglich im "Core" ausversehen den Code zu ändern.
_________________
The source of all power is in its destiny...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Sören
JLI Master Trainee



Anmeldedatum: 26.07.2002
Beiträge: 647
Wohnort: Bonn
Medaillen: Keine

BeitragVerfasst am: 08.08.2004, 13:25    Titel: Antworten mit Zitat

TheMillenium hat Folgendes geschrieben:
Ja, das hab ich befürchtet.

Irgendwann hab ich mal als Test sowas gemacht und brauchte keine blöde dlll...

Wenn du nur eine lib haben willst, brauchst du keine dll. Aber wenn du eine dll haben willst brauchst du eine lib. Verstanden? Wink
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Entwicklung Alle Zeiten sind GMT
Gehe zu Seite 1, 2  Weiter
Seite 1 von 2

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de

Impressum