JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.php?sid=2161244620269935e9d4c1d0a21b6301Medaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

dll - Bibliothek 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
Jonathan_Klein
Living Legend


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

BeitragVerfasst am: 11.07.2004, 19:57    Titel: dll - Bibliothek erstellen Antworten mit Zitat

ich hab vor einige meiner schönen DirectX Funktionen in eine dll zu schreiben. Das hätte mehrere Vorteile:
- Das Projekt ist aufgeräumter, da es deutlich weniger Quellcodedateien hat
- man mus nicht wenn man ein neues Projekt beginnt zig Dateien kopieren
- Man könnte das ganze veröffentlichen, so das andere Programmierer die Funktionen nutzen können, sie aber nicht verändern oder denb Quellcode klauen können

Weiß jemand wo es dazu Tutorials gibnt, oder ist das ganze so einfachk das man es mal eben schnell erklären könnte?
_________________
https://jonathank.de/games/
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Fallen
JLI MVP
JLI MVP


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

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

Schreib dir solche Tuts doch einfach selber, du hast es doch programmiert und weisst deshalb wie man es am leichtesten nutzen kann, Spass macht es auch noch Smile
_________________
"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
HotAcid
Super JLI'ler


Alter: 43
Anmeldedatum: 04.08.2002
Beiträge: 372
Wohnort: Berlin
Medaillen: Keine

BeitragVerfasst am: 11.07.2004, 20:11    Titel: Antworten mit Zitat

ich glaube, er will wissen, wie man eine dll-Datei erstellt...

cu Felix
_________________
StGB §§ 328 Abs. 2 Pkt 3:
Mit Freiheitsstrafe bis zu fünf Jahren oder mit Geldstrafe wird bestraft, wer eine nukleare Explosion verursacht.
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: 11.07.2004, 20:19    Titel: Antworten mit Zitat

jo, genau die Klassen sind alle fertig und auf verschiedene Dateien verteilt. Jetz würd ich gern wissen, wie man sie in ne dll packt und im Programm auf sie zugreifen kann. Ich schätze mal das geht mit .lib Dateien die man dem Projekt hinzufügt.
Mann kann ja in VC++ verschiedene Projekte wählen z. B. Win32 dll oder Library. Ich hab leider keine Ahnung was ich nehmen muss, und wie ich dann aus meinen Quellcodedateien die dll und die .lib mache
_________________
https://jonathank.de/games/
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Samus_Aran
JLI'ler


Alter: 37
Anmeldedatum: 12.05.2004
Beiträge: 183
Wohnort: Plauen->des liegt in Sachsen in der nähe von Chemnitz und Zwickau
Medaillen: Keine

BeitragVerfasst am: 11.07.2004, 21:42    Titel: Antworten mit Zitat

mmh haste die sachen als klassen oder direkt als funktionen gemacht???
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden MSN Messenger
Chewie
Super JLI'ler



Anmeldedatum: 17.07.2003
Beiträge: 382

Medaillen: Keine

BeitragVerfasst am: 12.07.2004, 00:01    Titel: Antworten mit Zitat

einen speziellen link hab ich nicht, ich hab mir das aus diversen quellen zusammengesucht, aber ich kann mal code posten. kann sein, dass unnötige sachen dabei sind, so sollte es aber mal funken:

man erstelle ein win32-dll projekt...
MyEngine.h
Code:

#ifndef _MYENGINE_
#define _MYENGINE_

// eine konstante definieren, die vor allen
// klassen/funktionen steht, die exportiert werden sollen
#ifdef MYENGINE_EXPORTS
#define MY_API __declspec(dllexport)
#else
#define MY_API __declspec(dllimport)
#endif

#pragma warning(disable : 4786)
#pragma warning(disable : 4251)

#include <windows.h>
...

// der handle der dll
extern HMODULE g_hDllHandle;

// function forwards
MY_API bool myEngineInit(void);
MY_API bool myEngineShutdown(void);

#endif

MyEngine.cpp
Code:

#include <MyEngine.h>

HMODULE g_hDllHandle = NULL;


BOOL APIENTRY DllMain(HMODULE hModule, DWORD dwReasonForCall, LPVOID lpvReserved)
{
   g_hDllHandle = hModule;

   return TRUE;
}


MY_API bool myEngineInit(void)
{
   // COM schnittstelle initialisieren
   if (FAILED(CoInitialize(NULL)))
      return false;
   
   return true;
}


MY_API bool myEngineShutdown(void)
{
   // COM herunterfahren
   CoUninitialize();

   return true;
}


wenn du das mal kompilierst, bekommst du eine .lib und .dll datei.
in deinem spiel musst du in options->directories include und library verzeichnisse angeben. und bei settings->link die lib datei linken...genau wie bei DX.
jetzt kannst du vor der nachrichtenschleife myEngineInit() und nach der schleife myEngineShutdown() aufrufen.
ein #include "MyEngine.h" darf auch nicht fehlen..

wenn das alles funkt, kannst du deine klassen in die dll packen, du musst nur darauf achten, dass du bei klassen, die du von 'außen' aufrufen willst, MY_API deklarierst: class MY_API MyClass {.....};

das sollte eigentlich alles sein, hier gibts ein kapitel über dll's, ich finde es aber eher verwirrend...das ist übrigens das ganze 'C++ in 21 Tagen' buch online.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Samus_Aran
JLI'ler


Alter: 37
Anmeldedatum: 12.05.2004
Beiträge: 183
Wohnort: Plauen->des liegt in Sachsen in der nähe von Chemnitz und Zwickau
Medaillen: Keine

BeitragVerfasst am: 12.07.2004, 07:11    Titel: Antworten mit Zitat

sagen wir mal ich will meine Direct3D9 und Sprite Klassen und so in eine dll schmeissen wie bekomm ich das hin das danach alle noch einwanfrei funzt und ich später aus der dll raus noch meine Klassen ableiten kann???
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden MSN Messenger
Sec
Junior JLI'ler



Anmeldedatum: 18.09.2002
Beiträge: 88

Medaillen: Keine

BeitragVerfasst am: 12.07.2004, 07:52    Titel: Antworten mit Zitat

Kuck mal hier http://download.pearsoned.de/leseecke/VCPLUS6_21Tg/data/start.htm unter Eigene Klassen und Module und DLLs ist aber glaub ich mit MFC
_________________
MFG Sec
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
GreveN
JLI Master


Alter: 38
Anmeldedatum: 08.01.2004
Beiträge: 901
Wohnort: Sachsen - Dresden
Medaillen: Keine

BeitragVerfasst am: 12.07.2004, 08:31    Titel: Antworten mit Zitat

hätte auch nochn Link zu bieten, n biddl weiter unten steht was dazu, konnte es aber bis jetzt nur überfliegen...
http://herbert.the-little-red-haired-girl.org/c-tips/windows/
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Yahoo Messenger MSN Messenger
The Lord of Programming
Living Legend


Alter: 37
Anmeldedatum: 14.03.2003
Beiträge: 3122

Medaillen: Keine

BeitragVerfasst am: 12.07.2004, 11:50    Titel: Antworten mit Zitat

Chewie hat Folgendes geschrieben:
wenn du das mal kompilierst, bekommst du eine .lib und .dll datei.

Hmm...aber wozu ist dann die *.dll gut, wenn nur die *.lib in den Linkereinstellungen eingebunden wird? Question
_________________
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
GreveN
JLI Master


Alter: 38
Anmeldedatum: 08.01.2004
Beiträge: 901
Wohnort: Sachsen - Dresden
Medaillen: Keine

BeitragVerfasst am: 12.07.2004, 11:59    Titel: Antworten mit Zitat

In der .lib stehen nich die Funktionen ansich, sondern nur deren Prototypen oder so...
Weißes aber auch nich genau...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Yahoo Messenger MSN Messenger
PeaceKiller
JLI Master


Alter: 36
Anmeldedatum: 28.11.2002
Beiträge: 970

Medaillen: Keine

BeitragVerfasst am: 12.07.2004, 12:41    Titel: Antworten mit Zitat

Ich glaube die lib ist praktische eine dll in einer exe.
Das hat den nachteil das man z.B. nicht die Engine updaten kann ohne das Spiel upzudaten. Außerdem muss man glaub ich eine dll speziell laden.
_________________
»If the automobile had followed the same development cycle as the computer, a Rolls-Royce would today cost $100, get a million miles per gallon, and explode once a year, killing everyone inside.«
– Robert X. Cringely, InfoWorld magazine
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Zyrian
Super JLI'ler



Anmeldedatum: 30.08.2003
Beiträge: 321
Wohnort: Essen
Medaillen: Keine

BeitragVerfasst am: 12.07.2004, 12:44    Titel: Antworten mit Zitat

das hier ist sicher das passende für dich:
http://www.resourcecode.de/view.php?id=776

sehr ausführlich und gut beschrieben (:
da steht alles was du darüber wissen musst, auch der unterschied zwischen .lib und .dll.

MFG
#C
_________________
Schau mir in die Augen, Kleines.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Chewie
Super JLI'ler



Anmeldedatum: 17.07.2003
Beiträge: 382

Medaillen: Keine

BeitragVerfasst am: 12.07.2004, 14:16    Titel: Antworten mit Zitat

The Lord of Programming hat Folgendes geschrieben:
Chewie hat Folgendes geschrieben:
wenn du das mal kompilierst, bekommst du eine .lib und .dll datei.

Hmm...aber wozu ist dann die *.dll gut, wenn nur die *.lib in den Linkereinstellungen eingebunden wird? Question


beim entwickeln musst du die lib linken, das fertige spiel kommt dann aber mit der .dll aus. kann dir aber auch nicht genau sagen, was wo drinsteht, man braucht jedenfalls beide...is wie bei DX.

@Peacekiller
eine dll in einer exe wäre eine static library, keine dll(dynamic link library).
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
MATTT
Junior JLI'ler



Anmeldedatum: 18.06.2003
Beiträge: 59

Medaillen: Keine

BeitragVerfasst am: 12.07.2004, 14:58    Titel: Antworten mit Zitat

Noch eine Ergänzung:

Eine Static Library ist eine .lib. Ansich brauchst du, wenn du eine die DLL erstellt hast, keine .lib. Du kannst die Funktionen mit bestimmten Windows-Funktion exportieren (dann kriegst du glaube ich einen Zeiger auf eine Funktion zurück). Dies ist aber viel Arbeit, die durch die .lib erspart wird.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
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