我竟然和同学的老婆发生那事?怎么办?应该怎么处理?急 ( 积分: 300 )

S

skyou

Unregistered / Unconfirmed
GUEST, unregistred user!
//这是一个HOOK DeviceIoControl函数的其中一个过程,其中省略了一点代码。
function MyDeviceIoControl(hDevice: THandle; dwIoControlCode: DWORD; lpInBuffer: Pointer;
nInBufferSize: DWORD; lpOutBuffer: Pointer; nOutBufferSize: DWORD;
var lpBytesReturned: DWORD; lpOverlapped: POverlapped): BOOL; stdcall;
var
aIdOutCmd: array[0..(SizeOf(TSendCmdOutParams) + 512 - 1) - 1] of Byte;
IdOutCmd: TSendCmdOutParams absolute aIdOutCmd;
begin
HookNum.Restore;

if dwIoControlCode = $0007C088 then
begin

//★重点: 怎么将Pointer型的缓冲区lpOutBuffer,赋值给数组型的aIdOutCmd ????

WriteToFile('----------------------------------');
WriteToFile('dwIoControlCode: ' + inttohex(dwIoControlCode, 2)); //得到的是$0007C088
WriteToFile('nOutBufferSize: ' + inttostr(nOutBufferSize)); //得到的是528
//最后输出aIdOutCmd的结果
end;

result := DeviceIoControl(hDevice, dwIoControlCode, lpInBuffer,
nInBufferSize, lpOutBuffer, nOutBufferSize, lpBytesReturned, lpOverlapped);
HookNum.Change;
end;
 
怎么将Pointer型的缓冲区lpOutBuffer,赋值给数组型的aIdOutCmd ????
用函数Move就行了
var
aIdOutCmd: array[0..(SizeOf(TSendCmdOutParams) + 512 - 1) - 1] of Byte;
begin
//...
Move(lpOutBuffer^,aIdOutCmd[0],nOutBufferSize);
end;
 
同意楼上
 
不回。顶。
 
应该是
Move(PChar(lpOutBuffer)^,aIdOutCmd[0],nOutBufferSize);
 
LZ不厚道。。。
有被骗的感觉。。。虽然。。。[:(]
 
LZ 的标题 引人眼球 [8D][:D][:D]
 
一楼正解,就是
Move(lpOutBuffer^,aIdOutCmd[0],nOutBufferSize);
 
LZ是驢子
 
LZ聪明!!!!!!!!!!
 
skyou太那个。。。[:D]
 
鄙视楼主的标题。
 
鄙视你。
 
被骗的感觉........
大富翁是不是缺少一个黑名单。
 
按楼主的这样..以后大富翁检索字..变成.."老婆"..之类的了...汗..
 
md,楼主老婆跟同学发生那种事!
 
楼主的弱智程度真是让人担忧啊,他以为这个题目会吸引人,结果进来的人不会再给他答案了...
 
顶部