civilian,안영제 님이 쓰신 글 :
: C DLL은 처리한 결과를 Result로 반환하는데, 델파이 코드에선 결과를 받아서
: 처리하는 부분이 없군요.
:
: 휴즈벌 님이 쓰신 글 :
: : 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 데이터를 두개를 매개변수로 보내면 계산은 잘되는데
: : 구조체는 계속 안되네여 ㅠㅠㅠㅠㅠㅠ
: :
: : 구조체 포인터로도 바꺼보고 삽질 몇시간째 하고있습니다ㅠㅠ
: : 고수분들 도와주세요 ㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠ
|