델파이에서 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;
감사합니다.
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;
>
>
> 감사합니다.
>
>
>