Q&A

  • VC의 배열선언을 델파이에서는 넘겨줄수 있는지..


델파이에서 VC로 작성된 DLL 함수로 구조체 변수를 넘겨주려 합니다.



VC에서는 아래와 같이 구조체가 선언되어 있습니다.



typedef struct _Test {

char szNode1[100];

char szNode1[100];

int nIndex;

} Test;



델파이에서 DLL함수를 호출할때, 위의 구조체 포맷에 맞게 넘겨주어야 하는데..



아래에서 처럼 VC에서와 동일한 포멧의 구조체를 선언하고,



TTest = record

sNode1 : array[0..99] of Char;

sNode2 : array[0..99] of Char;

nIndex : Integer;

end;



아래의 함수를 호출하면, 원하는 값은 나오는데..



TestFunction0(Test);



델파이의 구조체에서 sNode1, sNode2 를 String 으로 선언해서 VC의 DLL로



TTest = record

sNode1 : String; //array[0..99] of Char;

sNode2 : String; //array[0..99] of Char;

nIndex : Integer;

end;



값을 넘겨줄려면 어떻게 하면 될는지요?



typedef struct _Test {

char szNode1[100]; // 요것을 델파이의 String 선언과 타입매치

char szNode1[100]; // 시키고 싶은데...VC에서는 어떻게 하면?

int nIndex;

} Test;





감사합니다.







1  COMMENTS
  • Profile
    최용일 2001.10.12 20:21
    안녕하세요. 최용일입니다.



    dll이 서로 다른 언어로 제작된 프로그램에서 사용될려면 상호간에 호환되는 데이터형을



    사용해야 합니다.



    VC에는 델파이의 string형이 없어요... 더이상 고민하시지 마시고 첫번째처럼 쓰세요...



    문자열 크기가 유동적이라면 PChar형을 쓰시구요...



    ^^ 항상 즐코하세요...



    감사 wrote:

    >

    > 델파이에서 VC로 작성된 DLL 함수로 구조체 변수를 넘겨주려 합니다.

    >

    > VC에서는 아래와 같이 구조체가 선언되어 있습니다.

    >

    > typedef struct _Test {

    > char szNode1[100];

    > char szNode1[100];

    > int nIndex;

    > } Test;

    >

    > 델파이에서 DLL함수를 호출할때, 위의 구조체 포맷에 맞게 넘겨주어야 하는데..

    >

    > 아래에서 처럼 VC에서와 동일한 포멧의 구조체를 선언하고,

    >

    > TTest = record

    > sNode1 : array[0..99] of Char;

    > sNode2 : array[0..99] of Char;

    > nIndex : Integer;

    > end;

    >

    > 아래의 함수를 호출하면, 원하는 값은 나오는데..

    >

    > TestFunction0(Test);

    >

    > 델파이의 구조체에서 sNode1, sNode2 를 String 으로 선언해서 VC의 DLL로

    >

    > TTest = record

    > sNode1 : String; //array[0..99] of Char;

    > sNode2 : String; //array[0..99] of Char;

    > nIndex : Integer;

    > end;

    >

    > 값을 넘겨줄려면 어떻게 하면 될는지요?

    >

    > typedef struct _Test {

    > char szNode1[100]; // 요것을 델파이의 String 선언과 타입매치

    > char szNode1[100]; // 시키고 싶은데...VC에서는 어떻게 하면?

    > int nIndex;

    > } Test;

    >

    >

    > 감사합니다.

    >

    >

    >