$ FileName "test64abcd.exe"
#include "$\inc\RTL64.inc"
Declare Function MessageBox Lib "user32.dll" Alias "MessageBoxA" (ByVal hwnd As Long, ByVal lpText As String, ByVal lpCaption As String, ByVal wType As Long) As Sys
byte val1
byte val2
int result ''resd 1
val1=4
val2=6 '
mov eax,val1
mov eax,val2 ''multiply eax by ebx "
mul val1 'ebx
mov result,eax
zstring tit[]="64Bit OxygenBasic"
zstring msg[]="Hello dear Animal World! " + str(result)
'' oxygen 64 bit
''
sub rsp,40h ''32
mov r9, 0
lea r8, tit
lea rdx, msg
mov rcx, 0
call messagebox
add rsp, 40h ''32
'' oxygen 64 bit
''
'' output: Hello dear Animal World! 24
'' how I can detect if it's 32 bit or 64 bit
'' oxygen basic
''
#if defined( __FB_64BIT__ ) '' ?? ( __OXYGEN_64BIT__ )
#print "Producing 64-bit code output"
#else
#print "Producing 32-bit code output"
#endif
print "ok"
'process flags:
%CREATE_NEW_CONSOLE 0x00000010
%CREATE_NO_WINDOW 0x08000000
'etc
'
function Exec(string c, int wait=0, flags=0) as int
===================================================
STARTUPINFO infs
PROCESS_INFORMATION infp
CreateProcess null,c,0,0,0,flags,0,0,@infs,@infp
if wait
WaitForMultipleObjects 1,@infp.hthread,1,-1
end if
GetExitCodeProcess(infp.hProcess,@function)
CloseHandle infp.hProcess
CloseHandle infp.hThread
return 0
end function
function QuExec(string c,d,f, int wait=0,flags=0) as int
========================================================
return Exec(qu+c+qu+" "+d+" "+qu+f+qu, wait,flags)
end function
function DOS(string s, int wait=0,flags=0)
==========================================
string c
if s then
c="cmd.exe /c "+s
else
c="cmd.exe"
end if
Exec c, wait,flags
end function
Page created in 0.314 seconds with 11 queries.