Types in BB und BMax - Wie in ASM
Übersicht

![]() |
flonaBetreff: Types in BB und BMax - Wie in ASM |
![]() Antworten mit Zitat ![]() |
---|---|---|
So, hab mal wieder eine Frage.
Also gleich mal vorweg: ich habe kein BMax und habe die Demo zwar mal runtergeladen und installiert, dann aber verschlafen sie auszuprobieren und dann war die Testzeit auch schon um. ![]() Ich würde gerne mal wissen wie des mit den Types in Assembler übersetzt wird und wie des in BMax mit den Methoden funktioniert. Ich habe kA wie des funktioniert. Wäre vll jemand so nett einen kleinen Testtype in BMax zu schreiben und den Asm-Source zu posten? ![]() mfg flona |
||
www.Dreier-Florian.kilu.de
Intel Core 2 Quad Q9400 | Zotac 9800GT | 4GB RAM | 1TB HDD | Windows 7 Professional 32bit |
![]() |
kog |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hmm weiss nicht ob dir das was Hilft
Aber habe einen kleinen Source erstellt und Kompiled, der ASM code ist im Archiv + der SourceCode der anwendung. http://www.kognetwork.ch/type.rar |
||
![]() |
flona |
![]() Antworten mit Zitat ![]() |
---|---|---|
Da wärs jetzt interessant zu wissen was in den BMax-Funktionen passiert. Aber danke kog ![]() |
||
www.Dreier-Florian.kilu.de
Intel Core 2 Quad Q9400 | Zotac 9800GT | 4GB RAM | 1TB HDD | Windows 7 Professional 32bit |
![]() |
kog |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hmm inwiefern?
Was soll ich noch einbauen, schreib es mal so gedanklich und theoretisch auf. |
||
![]() |
Farbfinsternis |
![]() Antworten mit Zitat ![]() |
---|---|---|
flona hat Folgendes geschrieben: Da wärs jetzt interessant zu wissen was in den BMax-Funktionen passiert. Aber danke kog
![]() Was willst Du wissen? kog hat einfach eine Klasse definiert die die Eigenschaft "i" besitzt. Vielleicht hätte er noch folgenden Code darunter setzen sollen: Code: [AUSKLAPPEN] Local at:AsmTest = New AsmTest at.Set() |
||
Farbfinsternis.tv |
![]() |
flona |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich meinte, dass es noch interessant wäre was in den Funktionen von BMax passiert, die eingebunden werden. (zB: _bbObjectCtor, _bbObjectClass, ...) | ||
www.Dreier-Florian.kilu.de
Intel Core 2 Quad Q9400 | Zotac 9800GT | 4GB RAM | 1TB HDD | Windows 7 Professional 32bit |
![]() |
kog |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hmm Tut mir leid, wäre zuviel das zu schicken, da es sozusagen der Kern von BlitzMax ist, gehört zur Object verwaltung und co.
Findest du alles unter brl.mod/blitz.mod/objects.c |
||
![]() |
BtbN |
![]() Antworten mit Zitat ![]() |
---|---|---|
Der OOP-Code von BMax wird auf normale funktionen gewrappt, die als ersten Parameter einen Self-Parameter haben, welcher das Objekt selbst enthält.
Ein aufruf von beispiel:TBeispiel, wie z.B. Code: [AUSKLAPPEN] beispiel.spielbei("hallo") würde also zu
Code: [AUSKLAPPEN] TBeispiel_spielbei(beispiel, "hallo")
Eine Typ-Definition ist also nichts anderes als das Definieren von Funktionen und Variablen, die einen speziellen Namens-Prefix tragen. |
||
![]() |
flona |
![]() Antworten mit Zitat ![]() |
---|---|---|
Thx, BtbN. Aber des kann ja garnicht sein. Wenn ich einen Typ definiere zB Test, mit den Feldern x und y. Dann werden deiner Meinung nach die Variablen Test_x und Test_y oder so definiert. Und was machst du wenn du ein zweites Objekt erstellst.
Ich dachte schon des müsste iwie mit STRUCTuren gehen. Also zb: Code: [AUSKLAPPEN] Struct Type_Test
x Int y Int last Pointer next Pointer EndStruct In last und next wird der Pointer auf den vorherigen und nächsten "Type"(Structur) gespeichert, bei jedem new wird eine neue Struktur "erstellt", in dem letztem "Objekt" bei next der neue Pointer gespeichert. Und die Methoden werden dann wie du bereits gesagt hast also Method_Test_Iwas(pointer,par1,...) gespeichert. Kann man des so in der Art umsetzen? |
||
www.Dreier-Florian.kilu.de
Intel Core 2 Quad Q9400 | Zotac 9800GT | 4GB RAM | 1TB HDD | Windows 7 Professional 32bit |
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Diese last und next spielereien gibt es unter Bmax im Objekt nicht da hier der Programmierer selbst die Verwaltung der erstellten Instanzen übernimmt. | ||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
![]() |
flona |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich dachte, des wäre für eine For var=Each Type...Next Schleife gut. | ||
www.Dreier-Florian.kilu.de
Intel Core 2 Quad Q9400 | Zotac 9800GT | 4GB RAM | 1TB HDD | Windows 7 Professional 32bit |
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Unter BB wäre das auch eventuell so gewesen, da hier alle Instanzen global erfasst wurden, für BMax trifft das nicht mehr zu.
Und selbst unter BB denke ich war die globale Liste separat von den einzelnen Objekten gehalten. |
||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
![]() |
BtbN |
![]() Antworten mit Zitat ![]() |
---|---|---|
Es wird für Felder natürlich keine Globale Variable angelegt, das nur für Globals in Types. Für Fields weiss ich das exacte vorgehen nicht, könnte mir aber vorstellen, dass es eine Methode/Funktion ala Beispiel_getfield_testfield(Self:Beispiel) gibt, welche dann relativ zur addresse von Self im speicher die Variablen abruft. | ||
![]() |
flona |
![]() Antworten mit Zitat ![]() |
---|---|---|
Also meint ihr, dass ich die Verwaltung besser dem Programmierer überlassen soll ![]() |
||
www.Dreier-Florian.kilu.de
Intel Core 2 Quad Q9400 | Zotac 9800GT | 4GB RAM | 1TB HDD | Windows 7 Professional 32bit |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group