我在Main主框架中建立了一个机构体
  UserInfo = Record
    strUserName: string[20]
    strUserID: string[6]
  end;
var
  gUserInfo: UserInfo;
  
  我想在动态链接库中得到这个gUserInfo的值,该怎么做?请高手指点。

解决方案 »

  1.   

    Type
      PUserInfo = ^ UserInfo;在dll使用PUserInfo类型。————————————————————————————————————
    宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
    ————————————————————————————————————
      

  2.   

    procedure DoDoDO(var AUser:UserInfo);stdcall;
      

  3.   

    不是很明白,怎么把gUserInfo传给dll中的PUserInfo,能否说的详细一点,谢谢!
      

  4.   

    dll 中:
    procedure DoDoDO(PAUser: PUserInfo);stdcall;
    begin
      //……
    end;调用时:
    var
      gUserInfo: UserInfo;
    begin
      DoDoDO(@gUserInfo);
    end;————————————————————————————————————
    宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
    ————————————————————————————————————
      

  5.   

    在dll中PUserIno的数据类型不认识,该怎么解决?
      

  6.   

    在dll中再申明
    Type
      PUserInfo = ^ UserInfo;
      

  7.   

    dll 中:
    UserInfo = Record
        strUserName: string[20]
        strUserID: string[6]
      end;procedure DoDoDO(var AUser: UserInfo);stdcall;
    begin
      //……
    end;调用时:
    var
      gUserInfo: UserInfo;
    begin
      DoDoDO(gUserInfo);
    end;
      

  8.   

    我试过了,提示错误啊!
    [Error] dllBagFrame.dpr(41): 'PUserInfo' is not a type identifier
      

  9.   

    我想在自动化对象中是用一个方法,返回gUserInfo,怎么用?我用下面的方法不行,救救我!!
    function TDBCtl.GetUserInfo: OleVariant;
    begin
      Result := gUserInfo;
    end;
      

  10.   

    function TDBCtl.GetUserInfo: OleVariant;
    begin
      Result := integer(@gUserInfo);
    end;
      

  11.   

    好方法,但是返回值再怎么转换成gUserInfo呢?谢谢!
      

  12.   

    问题已经解决,zjqyb() 50分;lxpbuaa(桂枝香在故国晚秋) 10分。谢谢大家!
    我还有个问题,定义一个记录数组,也是在自动化对象中返回一个记录数组,该这个记录数组的长度?
    UserInfo = record
      strUserName: string[20];
      strUserID: string[6];
    end;
    var 
      UserInfoArray: array of UserInfo;
      
      

  13.   

    问题已经解决,zjqyb() 50分;lxpbuaa(桂枝香在故国晚秋) 10分。谢谢大家!
    我还有个问题,定义一个记录数组,也是在自动化对象中返回一个记录数组,该这个记录数组的长度?
    UserInfo = record
      strUserName: string[20];
      strUserID: string[6];
    end;
    var 
      UserInfoArray: array of UserInfo;