DLL사용의 장점중에 하나가 DLL이 어떤 언어로 작성이 되어있든
관계없이 바로 호출해서 사용할 수 있다는 겁니다. 즉, C++이든
델파이든 관계없이 일단 DLL로 만들어지면 사용할 수 있다는거죠.
다만, 호출하는데 있어서 약간의 차이가 있겠지만 그건 언어상의
차이가 있으므로 피할 수 는 없을겁니다.
질문하신 함수는 일단 리턴값이 없는 void형이므로 델파이에서는
procedure로 선언합니다.
그리고 Win32에서는 더이상 FAR와 NEAR의 구분이 의미가 없으므로
첫번째 파라미터는 그냥 Byte의 포인터형으로
PByte = ^Byte;
두번째 파라미터는 STRUCT_A 에 해당하는 형을 델파이에서 미리
선언해두어야 합니다. 즉,
PTSTRUCT_A = ^TSTRUCT_A;
TSTRUCT_A = record
...
end;
이렇게 말이죠. 그래서 위에 것을 종합하면 아래와 같이 선언을
해줍니다.
void func(byte FAR* A, STRUCT_A &B)
procedure func(A: PByte;
B: PTSTRUCT_A); stdcall; external 'XXXXX.DLL';
그럼, 도움이 되셨기를...
|