难道是这样?
type 
  TRasDialFunc =^RasDialFunc; 
  RasDialFunc=record
    unMsg:UINT; // type of event that has occurred
    rasconnstate:RASCONNSTATE; // connection state about to be entered
    dwError:DWORD; 

解决方案 »

  1.   

    'TRasDialFunc' 是类,而实际需要的是指针
      

  2.   

    to   bdmh
    那该怎么付值啊?网上都是这么付值的啊。如果我这么定义
    type  
      TRasDialFunc =^RasDialFunc;  
      RasDialFunc=record
      unMsg:UINT; // type of event that has occurred
      rasconnstate:RASCONNSTATE; // connection state about to be entered
      dwError:DWORD; 
    RasDial(nil,nil,@RASDIALPARAMSData,0,nil,@RasCon);
    又出现如下错误Types of actual and formal var parameters must be identical
      

  3.   

    你要声明一个  ^RasDialFunc类型的指针变量,直接传进去
      

  4.   

    to   Avan_LauRasDial(nil,nil,@RASDIALPARAMSData,0,nil,@RasCon);
    我查网上都是这么付的值啊。
    RasDial(nil,nil,@RASDIALPARAMSData,0,nil,@RasCon);第七个参数的指针变量要怎么付值啊???老兄,你有qq吗。想和你交流一下。
      

  5.   

    unit TestForm;interfaceuses
      Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, Ras,
      StdCtrls, ExtCtrls, ComCtrls, Buttons;type
      TRASForm = class(TForm)
       ...
        btnDialEntry: TButton;
       ...
        procedure btnDialEntryClick(Sender: TObject);
       ...    
        dialparams: TRasDialParams;
       ....
       public
        ...
      end;var
      RASForm: TRASForm;implementation
    ...// Callback RAS function
    procedure RasCallback(msg: Integer; state: TRasConnState;
        error: Longint); stdcall
      begin
      if error = 0 then
        RASForm.lblStatus.Font.Color := clBlue
      else
        RASForm.lblStatus.Font.Color := clRed;
      RASForm.lblStatus.Caption := StatusString(state, error);
      RASForm.btnActiveConn.Click;
      end;...procedure TRASForm.btnDialEntryClick(Sender: TObject);
      var
        r: integer;
        c: Array[0..100] of Char;
        hRas: THRasConn;
      begin
      Screen.Cursor := crHourglass;
      FillChar(dialparams, SizeOf(TRasDialParams), 0);
      with dialparams do
        begin
        dwSize := Sizeof(TRasDialParams);
        StrPCopy(szEntryName, lstEntries.Items[lstEntries.ItemIndex]);
        StrPCopy(szUserName, txtUserName.Text);
        StrPCopy(szPassword, txtPassword.Text);
        // You can override phone number here...
        // StrPCopy(szPhoneNumber, 'xxxxxx');
        end;
      hRas := 0;
      if optDialMode.ItemIndex = 0 then
        // Sync dial
        begin
        lblStatus.ParentFont := True;
        lblStatus.Caption := 'Dialing...';
        lblStatus.Refresh;
        r := RasDial(nil, nil, dialparams, 0, nil, hRas);
        if r = 0 then
          begin
          lblStatus.Caption := 'Connected';
          btnActiveConn.Click;
          end
        else
          begin
          lblStatus.Caption := 'Error';
          if hRas <> 0 then
            RasHangUp(hRas);
          end;
        end
       else
        // Async dial
        r := RasDial(nil,   // This field is ignored in Windows95
            nil,  // Phonebook: use default (not used on Win95)
            dialparams,
            0, // use callback function of type RASDIALFUNC
            @RasCallback,   // callback function
            hRas);
      if r <> 0 then
        begin
        RasGetErrorString(r, c, 100);
        ShowMessage('RasDial failed: ' + c);
        end;
      Screen.Cursor := crDefault;
      end;
    ...
    end.
      

  6.   

    //RAS單元中 TRasDialParams定義
      LPRasDialParamsA = ^TRasDialParamsA;
      TRasDialParamsA = record
        dwSize: LongInt;
        szEntryName: Array[0..RAS_MaxEntryName] of AnsiChar;
        szPhoneNumber: Array[0..RAS_MaxPhoneNumber] of AnsiChar;
        szCallbackNumber: Array[0..RAS_MaxCallbackNumber] of AnsiChar;
        szUserName: Array[0..UNLEN] of AnsiChar;
        szPassword: Array[0..PWLEN] of AnsiChar;
        szDomain: Array[0..DNLEN] of AnsiChar;
    {$IFDEF WINVER41}
        dwSubEntry: Longint;
        dwCallbackId: Longint;
    {$ENDIF}
      end;  LPRasDialParams = ^TRasDialParams;
      TRasDialParams = TRasDialParamsA;//RAS中THRasConn定義
      LPHRasConn = ^THRasConn;
      THRasConn = Longint;
      

  7.   

    用外部命令吧:rasdial.exe adsl username password
      

  8.   

    'TRasDialFunc' 是类,而实际需要的是指针
      

  9.   

    是一个回调函数!我以前用过dwRet := RasDialA(nil, nil, @rdParams, 0, @RasDialFunc, @hRasConn);
    procedure RasDialFunc(unMsg: DWORD; FRasConnState: TRASCONNSTATE; FdwError: DWORD); stdcall;
    var
      Buf: array[0..255] of Char;
    begin
      try
        ConnState := RasConnectionStateToString(FRasConnState); //连接状态
        FormDialUp.Memo1.Lines.Add(TimeToStr(Time) + ':连接状态:' + ConnState);
        if FRasConnState = RASCS_Connected then
        begin //连接成功
          IsConnected := true;
          RasDialConEnd := true;
          GbdwRedialDialCount := 0;
        end
        else if FdwError <> 0 then //连接出错
        begin
          RasGetErrorStringa(FdwError, @Buf[0], SizeOf(Buf));
          RasError := (Buf);
          FormDialUp.Memo1.Lines.Add(TimeToStr(Time) + ':连接状态:' + RasError);
          Disconnected;
          IsConnected := false;
          RasDialConEnd := true;
        end;
      except
      end;end;