For some reasons when the 1: is printed, the char that should be be in the address pointed to by addr is not printed, and yet on the 2: line, it is.
The only reason I can think of for this is that the addr in the FUNCTION routine is new, and that the addr passed to it is ignored (which it shouldn't be)
addr as DWORD
addr=make memory(1024)
rem The load dll stops the Pointer_Position from running
load dll "SelectGraphicsCardAndMode.dll",1
call dll 1,"selectCardAndMode","Test3",1,addr
print "1:";Pointer_Position(addr,0)
print "2:";chr$(*addr)
wait key
delete dll 1
delete memory addr
wait key
end
function Pointer_Position(addr as DWORD, offset as DWORD )
rem inc addr,offset
print chr$(*addr)
endfunction _value$
Yes, I really am THAT good...