Forum > General

TStartupInfo How to write data through pointers and addresses?

(1/2) > >>

anna:
code:
http://pastebin.com/JRxDtnct


(*
{How to write next by pointers:}
pStartupInfo.cb:=$44;
pStartupInfo.lpReserved:=nil;
pStartupInfo.lpDesktop:=nil;
pStartupInfo.lpTitle:=nil;
pStartupInfo.dwFlags:=$81;
pStartupInfo.wShowWindow:=$0A;
pStartupInfo.cbReserved2:=$00;
 
{I've tried :
attempt 1:
@pStartupInfo^:=dwaM4;
@(pStartupInfo+$2c)^:=dwaN3;
 
attempt 2:
p:=@pStartupInfo;
p^:=dwaM4;
(p+$2c)^:=dwaN3;
But some convertion errors appears ... :(
}
*)

eny:
No idea what you want to do.
Maybe something like: pStartupInfo^.cb:=$44;

Blaazen:
Yes, we don't know if your pointers are typed or untyped.
Anyway, this works.


--- Code: ---type TMyRec = record
      a: LongInt;
      b: LongInt;
    end;
    PTMyRec = ^TMyRec;

var PMyPoint: Pointer;
    PMyRec: PTMyRec;     

.........

    PTMyRec(PMyPoint+8)^.a:=20;
    PTMyRec(PMyRec+16)^.b:=80;
    PMyRec^.b:=50;


--- End code ---

marcov:
Use move()

something like 


--- Code: ---  move (constant1, startup,sizeof(constant1));
  move (constant2, (pbyte(@startup)+sizeof(constant1))^);

--- End code ---

or


--- Code: ---  pdword(@startup)[0]:=0;
  pdword(@startup)[1]:=1;
  pdword(@startup)[2]:=2;
 etc

--- End code ---

anna:

--- Quote from: eny on September 10, 2011, 11:45:57 am ---No idea what you want to do.
Maybe something like: pStartupInfo^.cb:=$44;

--- End quote ---
I want write pStartupInfo directly in memory. I don't want to use record fields like .cb .lpReserved so on.
pStartupInfo-record's fields are represented in memory like this:
http://img62.imageshack.us/img62/5518/95140904.png
I want find addresses of these records and write 7 dwords:
http://img339.imageshack.us/img339/8468/67015126.png

Navigation

[0] Message Index

[#] Next page

Go to full version