unit Unit1;interfaceuses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;
const
  MaxPhoneEntries = 10;//最多的拨号连接数目
  RAS_MaxEntryName= 128;
const
MaxConnections = 10;
RAS_MaxDeviceType = 16;//设备类型名称长度RAS_MaxDeviceName = 128;//设备名称最大长度
RAS_MaxIpAddress = 15;//IP地址的最大长度
RASP_PppIp = $8021;//拨号连接的协议类型,该数值表示PPP连接type
HRASCONN = DWORD;//拨号连接句柄的类型
RASCONN = record//活动的拨号连接的句柄和设置信息
dwSize : DWORD;//该结构所占内存的大小(Bytes),       hrasconn : HRASCONN;//活动连接的句柄
szEntryName : array[0..RAS_MaxEntryName] of char;
//活动连接的名称
szDeviceType : array[0..RAS_MaxDeviceType] of char;
//活动连接的所用的设备类型
szDeviceName : array[0..RAS_MaxDeviceName] of char;
//活动连接的所用的设备名称
end;
LPRASENTRYNAME = ^RASENTRYNAME;
RASENTRYNAME = record
  dwSize : DWORD;
  //该结构所占内存的大小(Bytes),
  //一般设置为SizeOf(RASENTRYNAME)
  szEntryName:array[0..RAS_MaxEntryName] of char;
  //拨号连接名称
end;
  TForm1 = class(TForm)
    Button1: TButton;
    Memo1: TMemo;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;function RasEnumEntries(
  reserved: PChar;
  lpszPhonebook:PChar;
  lprasentryname: LPRASENTRYNAME;
  var lpcb:  DWORD;
  var lpcEntries:  DWORD): DWORD;stdcall;
 function RasEnumEntries; external 'Rasapi32.dll' name 'RasEnumEntriesA';
var
  Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
var
  intIndex     : integer;
  PhoneEntries : array[ 0..MaxPhoneEntries - 1 ]
                      of RASEntryName;
  dwSize,dwEntries,dwResult : DWORD;
begin
  //在RASENTRYNAME缓冲区的
  //第一个RASENTRYNAME结构中设置dwSize
  PhoneEntries[ 0 ].dwSize := sizeof( RASEntryName );  dwSize:=MaxPhoneEntries*sizeof(RASEntryName);
  //为缓冲区的大小  //调用RasAPI函数,获取当前系统中可用的拨号连接名称
  dwResult := RasEnumEntries ( nil,'',
    @PhoneEntries[ 0 ],dwSize, dwEntries ); if dwResult <> 0 then
  begin//RasAPI函数,执行错误
    memo1.lines.add('RasEnumEntries错误:' +
      inttostr( dwResult) );
    exit;
  end;  //显示当前系统中可用的拨号连接名称
  memo1.lines.add('共有' +
    inttostr( dwEntries ) + '个RAS连接,如下所示');
  for intIndex := 0 to dwEntries -1 do
    memo1.lines.add(strpas(
      PhoneEntries[ intIndex ].szEntryName ) );
end;end.
运行后得不到名称提示632错误!

解决方案 »

  1.   

    632等于
    RASBASE = 600;
    ERROR_INVALID_SIZE  = RASBASE+32;  // 你定义的结构大小不对。给你改了一下:
      RAS_MaxEntryName= 256;  LPRASENTRYNAME = ^RASENTRYNAME;
      RASENTRYNAME = record
        dwSize : DWORD;
        szEntryName:array[0..RAS_MaxEntryName] of char;
        dwFlags      : DWORD;
        szPhonebookPath: array [0..MAX_PATH] of Char;
      end;
    这样就可以了