고수 님등 부탁 드림니다 ..꾸벅
아래는 C에서 선언된 함수 입니다
unsigned WINAPI Scif_DataRX(void* p);
extern "C" __declspec(dllexport) short __stdcall M_ReadData(char *romData);
extern "C" __declspec(dllexport) short __stdcall M_SelectCOM(short COMport);
extern "C" __declspec(dllexport) short __stdcall M_Ver_Data(VerData *verData);
그리고 Dalphi 에서는
function M_ReadData (var romData: Byte): Integer; stdcall; external 'PIC.dll';
function M_SelectCOM(var COMportNo: Byte): Integer; stdcall; external 'pic.dll';
function M_Ver_Data (var VerData: Byte): Integer; stdcall; external 'pic.dll';
호출 부문은
procedure TBPI_002M.Bt_AddClick(Sender: TObject);
var
i, j, Ret : Integer;
strRomData : String;
begin
ret := 1;
while ret <> 0 do begin
ret := M_ReadData(romData[0]);
end;
strRomData := '';
For i := 0 To 32 do begin
strRomData := strRomData + IntToHex(romData[i],2) + ' ';
end;
컴파일 했을때 access violation 이 나옵니다
부탁 드리겠습니다..
해야됩니다.
char * = pChar 입니다.
romData[0] 로 보내면 첫번째 문자가 가겠죠.
아 첫번째 글자도 아니군요.
델파이의 스트링 인덱스는 1부터 시작입니다.