with this little code you can scan the dbpro dll's for some
infos about the functions. the infos are stored in a file
"dbprodll.txt"
#constant kernel32 = 1
#constant user32 = 2
hLib as dword
load dll "kernel32.dll", kernel32
load dll "user32.dll", user32
cd get registry$("SOFTWAREDark BasicDark Basic Pro","INSTALL-PATH") + "Compilerplugins"
if file exist("DBProDLL.txt") then delete file "DBProDll.txt"
open to write 1, "DBProDLL.txt"
perform checklist for files
for file = 1 to checklist quantity()
if right$(checklist string$(file), 3) = "dll"
hLib = call dll(kernel32, "LoadLibraryA", checklist string$(file))
String$ = space$(255)
ID = 1
do
call dll user32, "LoadStringA", hLib, ID, String$, 256
Error = call dll(kernel32, "GetLastError")
if Error > 1800 then exit
ink rgb(255, 255, 255), 0
print "DBPro DLL: ", checklist string$(file)
ink rgb(255, 128, 128), 0
print "#", ID, " ", String$
write string 1, "DBPro DLL: " + checklist string$(file)
write string 1, "#" + str$(ID) + " " + String$
Return$ = ""
Command$ = ""
Parameter$ = ""
Decorated$ = ""
Note$ = ""
Pos = 1
do
Char$ = mid$(String$, Pos)
if Char$ = "["
inc Pos, 2
Char$ = mid$(String$, Pos)
if Char$ = "L" then Return$ = "Integer = "
if Char$ = "F" then Return$ = "Float = "
if Char$ = "S" then Return$ = "String = "
if Char$ = "D" then Return$ = "DWord = "
Char$ = "%"
endif
if Char$ = "%"
repeat
inc Pos
Char$ = mid$(String$, Pos)
if Char$ = "L" then Parameter$ = Parameter$ + "Integer, "
if Char$ = "F" then Parameter$ = Parameter$ + "Float, "
if Char$ = "S" then Parameter$ = Parameter$ + "String, "
if Char$ = "D" then Parameter$ = Parameter$ + "DWord, "
until Char$ = "%"
if Return$ = ""
Parameter$ = " " + left$(Parameter$, len(Parameter$) - 2)
else
Parameter$ = "(" + left$(Parameter$, len(Parameter$) - 2) + ")"
endif
repeat
inc Pos
Char$ = mid$(String$, Pos)
Decorated$ = Decorated$ + Char$
until Char$ = "%" or Char$ = ""
if Char$ = "%" then Decorated$ = left$(Decorated$, len(Decorated$) - 1)
Note$ = right$(String$, len(String$) - Pos)
Char$ = ""
endif
if Char$ = "" then exit
Command$ = Command$ + Char$
inc Pos
loop
ink rgb(128, 128, 255), 0
print "Syntax: ", Return$, Command$, Parameter$
print "Decorated: ", Decorated$
print "Note: ", Note$
print
write string 1, "Syntax: " + Return$ + Command$ + Parameter$
write string 1, "Decorated: " + Decorated$
write string 1, "Note: " + Note$
write string 1, ""
inc ID
loop
call dll kernel32, "FreeLibrary", hLib
endif
next file
close file 1
delete dll kernel32
delete dll user32
execute file "notepad.exe", "DBProDLL.txt", ""
end
Quote: "
DBPro DLL: DBProBasic3DDebug.dll
#1 LOAD OBJECT%SL%?Load@@YAXKH@Z%Filename, Object Number
Syntax: LOAD OBJECT String, Integer
Decorated: ?Load@@YAXKH@Z
Note: Filename, Object Number
DBPro DLL: DBProBasic3DDebug.dll
#2 ROTATE OBJECT%LFFF%?Rotate@@YAXHMMM@Z%Object Number, XAngle, YAngle, ZAngle
Syntax: ROTATE OBJECT Integer, Float, Float, Float
Decorated: ?Rotate@@YAXHMMM@Z
Note: Object Number, XAngle, YAngle, ZAngle
DBPro DLL: DBProBasic3DDebug.dll
#3 LOOP OBJECT%L%?Loop@@YAXH@Z%Object Number
Syntax: LOOP OBJECT Integer
Decorated: ?Loop@@YAXH@Z
Note: Object Number
DBPro DLL: DBProBasic3DDebug.dll
#4 ADD LIMB%LLL%?AddLimb@@YAXHHH@Z%Object Number, Limb Number, Mesh Number
Syntax: ADD LIMB Integer, Integer, Integer
Decorated: ?AddLimb@@YAXHHH@Z
Note: Object Number, Limb Number, Mesh Number
DBPro DLL: DBProBasic3DDebug.dll
#5 APPEND OBJECT%SLL%?Append@@YAXKHH@Z%Filename, Object Number, Start Frame
Syntax: APPEND OBJECT String, Integer, Integer
Decorated: ?Append@@YAXKHH@Z
Note: Filename, Object Number, Start Frame
...
"