PureBoard
http://forums.purebasic.com/german/

Ascii Strings in DataSection (Tipp)
http://forums.purebasic.com/german/viewtopic.php?f=3&t=31851
Seite 1 von 1

Autor:  Benubi [ 04.02.2020 23:06 ]
Betreff des Beitrags:  Ascii Strings in DataSection (Tipp)

Hallo,

Code:
DataSection
  Data.a "Dies ist ein ASCII-String"
EndDataSection


Ich bin gerade dabei die lua 5.3.5 dll manuell einzubinden. Und lerne ne Menge dazu... hey!

Wenn Lua ein "module" bzw. "package" über den require Befehl anfordert, sollte man schnellstmöglich alle Tabellen mit Namen und Adressen der Modulfunktionen setzen. Dafür bietet die API eine Funktion Namens "luaL_newlibtable", welche ein Array aus solchen Paaren in einem Durchgang abarbeitet. Das Problem war jetzt nur, daß Lua eben intern Ascii benutzt.

Ich dachte ich müßte entweder klassisch für jede Procedure 3 Befehle in einem Loop aufrufen, oder die Registry im Ram anlegen. Aber jetzt geht es ja wie gewünscht mit DataSection :)

Code:
; --------
; Ascii-Strings in DataSection
; --------

Macro _moduledq()
"
EndMacro

Macro _modentry( name )
  Data.a _moduledq()name#_moduledq(): Data.i @tolua_#name()
EndMacro
; --------
ProcedureC tolua_myproc(*L)
EndProcedure
ProcedureC tolua_myproc2(*L)
EndProcedure
ProcedureC tolua_myproc3(*L)
EndProcedure

; --------
DataSection
   lua_module:
   Data.a "mypröc" : Data.i @tolua_myproc()
   _modentry(myproc2)
   _modentry(myproc3)
   Data.a "noproc" : Data.i 0
   Data.i 0,0
 EndDataSection
 
 ; Test:
 Debug "Ascii:"+PeekS(?lua_module,-1,#PB_Ascii)
 Debug "UTF8:"+PeekS(?lua_module,-1,#PB_UTF8)
 
 ; Auslesen und ausgeben
 Restore lua_module
 Repeat 
   Debug "----"
   
   name$=""
   c.a
   Repeat
     Read.a c
     If c
       name$=name$+Chr(c)
     EndIf
   Until  c=0
   Read.i addr
   
   
   Debug "name:" +name$
   Debug "addr: "+addr
 
 Until name$=""
 



So ich mach dann mal weiter ^^

Seite 1 von 1 Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/