Spiel als Dll...

Übersicht BlitzMax, BlitzMax NG Allgemein

Neue Antwort erstellen

Lunatix

Betreff: Spiel als Dll...

BeitragDo, Jan 04, 2007 16:54
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi.

Ich hab jetz schon ca 2,5 stunden hier rumgespielt und komme zu keinem Ergebnis...
Mit BlitzMax kann man ja DLL's erstellen, funktioniert auch ganz gut, jetz dachte ich mir, dann könnte man ein Spiel ja in eine Funktion packen und könnte so eine art Plugin erstellen...

Naja gedacht, irgendwie funktioniert das ganze nicht. Habe es in Blitzmax und Blitz3d versucht, die funktion findet er, aber es sieht so aus, als würde er die nicht/nicht richtig ausführen, da er auch auf ein Return nichts ausgibt...


Hier der Code der "Game.dll" / "Game.a"

Code: [AUSKLAPPEN]

Framework BRL.GLMax2D

Function Init_LIB:String()

   Local LibInfo:String
   LibInfo:+"Author: Junkprogger"
   LibInfo:+"Version: 1.0"
   Return LibInfo

End Function

Function Run_LIB:String()
   
   Graphics 640,480

   Repeat
      DrawRect 50,50,64,64
      Flip
      Cls
      
   Until KeyHit(KEY_ESCAPE)
   Return "Game End"
   
End Function


Und dies die GameText.bmx:

Code: [AUSKLAPPEN]

Framework BRL.retro

Import "game.a"

Extern

   Function bb_Init_LIB:String() = "InitLib"
   Function bb_Run_LIB:String() = "RunLib"
   
End Extern

Print bb_Init_Lib()
Print bb_Run_Lib()


Und die GameTest.bb :
(mit DECLS gehts nciht, und mit CallDLL erstrechtnich...)
Code: [AUSKLAPPEN]

Print GameDLL_InitLib()
Print GameDLL_RunLib()

Print "End"
WaitKey
End


[EDIT]

Es geht nicht um die Funktionen selber, sondern um Run_Lib, diese funktion führt er nicht aus... Init_Lib geht
[size=9]Pro|gram|mier|er: Ein Organismus, der Koffein in Software umwandelt.
Geben Sie eine beliebige 11-stellige Primzahl ein, um fortzusetzen...

FOODy

BeitragMo, März 19, 2007 16:35
Antworten mit Zitat
Benutzer-Profile anzeigen
Da es noch von diesem Jahr ist, erlaube ich mir mal es zu pushen. (schon allein deswegen, weil die Idee auch ganz interessant ist ^^)

Man kann tatsächlich ein Game in ne DLL packen.
Weiß nicht ob du das schon selber gelöst hast oder nicht aber hier ist mal ein kleines Beispiel von mir:
https://www.blitzforum.de/upload/file.php?id=1275

"main.bmx" -> DLL Code
"test.bmx" -> Dort wird die DLL geladen und "ausgeführt"



Gruß,
FOODy
BlitzMax + MaxGUI, 64-bit Arch Linux: Intel Core² E8500 | 8 GB Ram | GeForce GTX 460 · 1024 MB

Lunatix

BeitragMo, März 19, 2007 17:54
Antworten mit Zitat
Benutzer-Profile anzeigen
mmh.. najo so gehts ^^

Aber mitlerweile hab ich die funktionen "LoadLibraryA, GetProcAddress und FreeLibrary" gefunden xD
[size=9]Pro|gram|mier|er: Ein Organismus, der Koffein in Software umwandelt.
Geben Sie eine beliebige 11-stellige Primzahl ein, um fortzusetzen...

kog

BeitragMo, Dez 15, 2008 12:03
Antworten mit Zitat
Benutzer-Profile anzeigen
Hmm tut mir leid wenn ich es raushole, aber hätte jemand noch den Source?
*edit*
geht mir vorallem um das Graphics in der DLL, den jedesmal wenn ich es aufrufe gibts einen MAV ohne eine Fehlermeldung, im Debugmode genau gleich.

klin

BeitragFr, Jan 16, 2009 22:22
Antworten mit Zitat
Benutzer-Profile anzeigen
Kann jemand diese Datei plz reuppen?
THX
MFG
Klin

BtbN

BeitragFr, Jan 16, 2009 23:47
Antworten mit Zitat
Benutzer-Profile anzeigen
Scheinbar nicht.
Btw. wäre es illegal, Bmax-Befehle in eine DLL zu packen, sodass sie von aussen benutzbar sind.

klin

BeitragSa, Jan 17, 2009 0:45
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich will ein Mod fähiges spiel machen. Und deshalb will ich die dlls benutzten. Jedoch um die dll zu erstellen, braucht der benutzter bmax Razz
Doch leider kann ich ebenfalls nichts zeichnen. Mir gehts also auch nur ums grafische.
THX
MFG
Klin

P.S. Wenn es Illigal wäre, warum kann man dann überhaupt Dlls per Bmax erstellen? Oo

BtbN

BeitragSa, Jan 17, 2009 10:31
Antworten mit Zitat
Benutzer-Profile anzeigen
Das DLL-Feature ist nur versteckt, und auch nur unter Windows implementiert.
Es ist deshalb illegal, weil die BRL-Lizenz, unter der alle BRL-Module stehen, es nicht erlauben, diese zu benutzen, wenn man kein BMax hat.
Und da man mit einer DLL diese funktionen ohne BMax durch die DLL aufrufbar machen würde, sind DLLs nicht möglich.

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group