function NetUserGetInfo(servername, username: LPCWSTR; level: DWORD; var bufptr: LPBYTE): NET_API_STATUS; stdcall;
他要的是LPBYTE,你给的参数类型不对.
如果是var参数,他要什么类型你就必须严格的给什么类型

解决方案 »

  1.   

    哦,谢谢。那如何对userinfo该如何转换才能为lpbyte类型。
      

  2.   

    在jwalmaccess.pas中Tuserinfo2已定义如下:  LPUSER_INFO_2 = ^USER_INFO_2;
      {$EXTERNALSYM LPUSER_INFO_2}
      PUSER_INFO_2 = ^USER_INFO_2;
      {$EXTERNALSYM PUSER_INFO_2}
      _USER_INFO_2 = record
        usri2_name: LPWSTR;
        usri2_password: LPWSTR;
        usri2_password_age: DWORD;
        usri2_priv: DWORD;
        usri2_home_dir: LPWSTR;
        usri2_comment: LPWSTR;
        usri2_flags: DWORD;
        usri2_script_path: LPWSTR;
        usri2_auth_flags: DWORD;
        usri2_full_name: LPWSTR;
        usri2_usr_comment: LPWSTR;
        usri2_parms: LPWSTR;
        usri2_workstations: LPWSTR;
        usri2_last_logon: DWORD;
        usri2_last_logoff: DWORD;
        usri2_acct_expires: DWORD;
        usri2_max_storage: DWORD;
        usri2_units_per_week: DWORD;
        usri2_logon_hours: PBYTE;
        usri2_bad_pw_count: DWORD;
        usri2_num_logons: DWORD;
        usri2_logon_server: LPWSTR;
        usri2_country_code: DWORD;
        usri2_code_page: DWORD;
      end;
      {$EXTERNALSYM _USER_INFO_2}
      USER_INFO_2 = _USER_INFO_2;
      {$EXTERNALSYM USER_INFO_2}
      TUserInfo2 = USER_INFO_2;
      PUserInfo2 = PUSER_INFO_2; 
    该如何如何定义和初始才能对
    function NetUserGetInfo(servername, username: LPCWSTR; level: DWORD; var bufptr: LPBYTE): NET_API_STATUS; stdcall;进行调用?谢谢!!
      

  3.   

    LPBYTE  这个是C中间的原型啊,delphi中应该没有啊 对应pByte 。强转pbyte一下就行你把这个函数在C中的原型发下 看你声明错了没有