Spieleprogrammieren in C/C++ oder wie benutze ich B3D mit C/C++
-
Hi, habe mal eine Frage an euch. Weil ich glaube hier sitzen Leute die mir diese beantorten könnten.
Es gibt eine beliebten Basic Dialekt um Spiele zu programmieren. Blitz3D http://www.blitzbasic.com/ Damit kann man DirectX7 basierende Anwendungen programmieren. Es ist ein echter Compiler.
Nun hat einer es geschaft den Funktionsumfang von Blitz3D in C/C++ zu verwenden. http://www.ezblitz.com/
Das können auch Leute testen die kein Blitz3D haben. Also einfach die Demo runterladen. Nur mus die ezServer.exe(Blitz3D) im selben Ornder sein wie die C/C++ Exe
Wie kann man das realisieren?
-
o991 schrieb:
Wie kann man das realisieren?
Du meinst diese C++ Lib? Naja, is einfach nur ein Wrapper um die Blitzbasic Funktionen.
-
Mal ein Frage an euch.
Stellen wir uns mal vor ich mach eine FUnktion in Basic
Function Display(x,y,z)
Graphic3D(x,y,z) <---Orginal Blitz3D Funktion
End FunctionNun müsste man doch im Arbeitspeicher den Ort finden von der Funktion und mit C/C++ die Parameter übergeben. hmmm
geht sowas??? Ist es ein Sinnvoller weg???
-
so etwas geht, du musst nur ggf. die Aufrufskonvention deines Compilers umgehen. Ansonsten ist das kein Problem (solange der Code kompiliert wird und die Funktion nicht geinlined wird)
-
Aber der Type gibt ja den orginal Basic Compiler nicht mit. Dürfte er ja auch gar nicht.
Also hat er anscheinend alle Basic Funktionen erst mal in Basic gewrappt und eine exe erstellt. Was mich stutzig macht ist das er die BasicExe ezServer nennt. Kommuniiert er etwas über TCP oder so?? mit der BasicExe. Kann das sein.
-
das könnte auch sein, dass er via IPC arbeitet, aber ich weiss nicht ob sich das lohnt, aus Geschwindigkeitsgründen.
-
Währe es den möglich. aus einer Exe in eine andere reinzuspringen und eine Funktion aufzurufen?
-
kingruedi schrieb:
so etwas geht, du musst nur ggf. die Aufrufskonvention deines Compilers umgehen. Ansonsten ist das kein Problem (solange der Code kompiliert wird und die Funktion nicht geinlined wird)
muesste da nicht Windows lauthals aufschreien, wenn ein Programm auf den Speicherbereich eines anderen zugreifen will?
-
ist die EXE überhaupt eine EXE.
Dateiendungen sind Schall und Rauch.
-
Blue-Tiger schrieb:
kingruedi schrieb:
so etwas geht, du musst nur ggf. die Aufrufskonvention deines Compilers umgehen. Ansonsten ist das kein Problem (solange der Code kompiliert wird und die Funktion nicht geinlined wird)
muesste da nicht Windows lauthals aufschreien, wenn ein Programm auf den Speicherbereich eines anderen zugreifen will?
Ja, aber niemand hat verboten, den Code in den eigenen Speicher zu laden/linken.