LPSTR pImgFrame;
LPSTR lpOutBuffer;
DWORD PKTCOUNT;
DWORD PKTSIZE;
for(PKTCOUNT=0; PKTCOUNT< 2 ; PKTCOUNT++)
{
중간 생략...
lpOutBuffer = (LPSTR)(m_pImgFrame + (PKTCOUNT* PKTSIZE)); <--- 애매한 부분
bResult = DeviceIoControl( Handle,IOCTL_BULK_READ,
&tBulkCtl,
sizeof(tBulkCtl),
lpOutBuffer,
PKTSIZE,
&nByte,
NULL);
중간 생략...
}
결론적으로 m_pImgFrame으로 값이 넘어오는 것인데요
lpOutBuffer = (LPSTR)(m_pImgFrame + (PktCount * PKTSIZE));
이 부분을 단순히 바꾸면
lpOutBuffer := PChar(m_pImgFrame + (PktCount * PKTSIZE));
bResult = DeviceIoControl( Handle,IOCTL_BULK_READ,
@tBulkCtl,
sizeof(tBulkCtl),
lpOutBuffer,
PKTSIZE,
nByte,
NULL);
이렇게 하면 되는데 m_pImgFrame에 값이 넘어오지 않게 되자나요....
델파이에서는 어떻게 적절히 바꿔야 할지..난감 하네요.
pImgFrame 와 lpOutBuffer 를 Pointer 로만 선언하면 되는것인지....쩝....에궁.. 고수분들의 자문을 얻고자 합니다.
pImgFrame, lpOutBuffer : pchar;
PKTCOUNT, PKTSIZE : integer;
begin
.....
lpOutBuffer := m_pImgFrame[PKTCOUNT* PKTSIZE];