delphi中怎么调用VC编译的dll中返回的结构体变量,请高手帮忙啊,急死了

解决方案 »

  1.   

    DLL接口是什么样的?
    一般情况下是传入一个结构指针了
    如这样的:
    type
      PStruct=^TStruct;
      TStruct=record
        fint:integer;
        ......
      end;function DLLFUNC(var Pintput:PStruct):integer;stdcall;//--返回类型也许为别的,或是直接返回结构类型的数据;
    或是这样:
    procedure DLLFUNC(Var Pintput:PStruct);stdcall;
      

  2.   

    调用约定要和VC 中的相同,如stdcall、cdecl等等
      

  3.   

    把VC的结构体转换成Delphi record 就可以了
      

  4.   

    关键是要参数匹配,在VC用_WINAPI_加在函数声明中间,在Delphi下用标准调用(Stdcall)就可以了,你可以回避一下,把结构体的各个成员分别付给变量,再从DLl里传出来就行:)
      

  5.   

    那就试一下内存copy吧。但是struct和record中不允许有string类型。