C로 짠 DLL에 다음 코드가 있구요
extern "C" __declspec(dllexport)
struct aa{
int a;
int b;
int c;
};
extern "C" __declspec(dllexport)
aa aafunc(aa ab)
{
ab.c = ab.a + ab.b;
return ab;
}
다음은 델파이로 짠코드입니다
type
aa=record
a:integer;
b:integer;
c:integer;
end;
...
function aafunc(ab:aa):aa;stdcall;external'dll1';
...
procedure TForm1.Button7Click(Sender: TObject);
var
ab:aa;
begin
ab.c:=0;
ab.a:=strtoint(edit1.Text);
ab.b:=strtoint(edit2.Text);
aafunc(ab);
edit3.text:=inttostr(ab.c);
end;
두개의 에디트창에 입력된수를 구조체에 저장하고 DDL함수를 불러
구조체 멤버끼리 덧셈을 해서 그 결과를 ab.c에 저장하고 ab구조체를 반환하여
델파이에서 결과를 에디트창에 출력하는건데요
함수는 호출이 되긴하는데 함수에서 계산이 되는건지 모르겠네여
계속 결과가 안뜨네요 구조체를 DLL함수에 매개변수로 보낼수 없나요?
아니면 계산은 되는데 구조체를 반환 할 수가 없는 것인가요?
integer 데이터를 두개를 매개변수로 보내면 계산은 잘되는데
구조체는 계속 안되네여 ㅠㅠㅠㅠㅠㅠ
구조체 포인터로도 바꺼보고 삽질 몇시간째 하고있습니다ㅠㅠ
고수분들 도와주세요 ㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠ
|