为何编译时出现 未找到^HRASConn,,我该怎么办?
Unit ras_api;Interface
uses windows;Const
UNLEN = 256;
PWLEN = 256;
DNLEN = 15;
RAS_MaxEntryName = 256;
RAS_MaxDeviceName = 128;
RAS_MaxDeviceType = 16; RAS_MaxPhoneNumber = 128;
RAS_MaxCallbackNumber = RAS_MaxPhoneNumber;
PHRASConn = ^HRASConn;
HRASConn = DWORD;const
RASDialEvent = 'RASDialEvent';
WM_RASDialEvent = $0CCCD;
{ Enumerates intermediate states to a Connection. (See RasDial) }
RASCS_Paused = $1000;
RASCS_Done = $2000; RASBase = 600;
Success = 0;Const
RASCS_OpenPort = 0;
RASCS_PortOpened = 1;
RASCS_ConnectDevice = 2;
RASCS_DeviceConnected = 3;
RASCS_AllDevicesConnected = 4;
RASCS_Authenticate = 5;
RASCS_AuthNotify = 6;
RASCS_AuthRetry = 7;
RASCS_AuthCallback = 8;
RASCS_AuthChangePassword = 9;
RASCS_AuthProject = 10;
RASCS_AuthLinkSpeed = 11;
RASCS_AuthAck = 12;
RASCS_ReAuthenticate = 13;
RASCS_Authenticated = 14;
RASCS_PrepareForCallback = 15;
RASCS_WaitForModemReset = 16;
RASCS_WaitForCallback = 17; RASCS_Interactive = RASCS_Paused;
RASCS_RetryAuthentication = RASCS_Paused + 1;
RASCS_CallbackSetByCaller = RASCS_Paused + 2;
RASCS_PasswordExpired = RASCS_Paused + 3; RASCS_Connected = RASCS_Done;
RASCS_DisConnected = RASCS_Done + 1;Type
{ Identifies an active RAS Connection. (See RasConnectEnum) }
PRASConn = ^TRASConn;
TRASConn = record
dwSize: DWORD;
rasConn: HRASConn;
szEntryName: Array[0..RAS_MaxEntryName] Of Char;
szDeviceType : Array[0..RAS_MaxDeviceType] Of Char;
szDeviceName : Array [0..RAS_MaxDeviceName] of char;
end; PRASConnStatus = ^TRASConnStatus;
TRASConnStatus = Record
dwSize: LongInt;
rasConnstate: Word;
dwError: LongInt;
szDeviceType: Array[0..RAS_MaxDeviceType] Of Char;
szDeviceName: Array[0..RAS_MaxDeviceName] Of Char;
End; PRASDIALEXTENSIONS= ^TRASDIALEXTENSIONS;
TRASDIALEXTENSIONS= Record
dwSize: DWORD;
dwfOptions: DWORD;
hwndParent: HWnd;
reserved: DWORD;
end; PRASDialParams = ^TRASDialParams;
TRASDialParams = Record
dwSize: DWORD;
szEntryName: Array[0..RAS_MaxEntryName] Of Char;
szPhoneNumber: Array[0..RAS_MaxPhoneNumber] Of Char;
szCallbackNumber: Array[0..RAS_MaxCallbackNumber] Of Char;
szUserName: Array[0..UNLEN] Of Char;
szPassword: Array[0..PWLEN] Of Char;
szDomain: Array[0..DNLEN] Of Char;
end; PRASEntryName = ^TRASEntryName;
TRASEntryName = Record
dwSize: LongInt;
szEntryName: Array[0..RAS_MaxEntryName] Of Char;
// Reserved: Byte;
End;
Function RasDial(
lpRasDialExtensions : PRASDIALEXTENSIONS ; // pointer to function extensions data
lpszPhonebook: PChar; // pointer to full path and filename of phonebook file
lpRasDialParams : PRASDIALPARAMS; // pointer to calling parameters data
dwNotifierType : DWORD; // specifies type of RasDial event handler
lpvNotifier: DWORD; // specifies a handler for RasDial events
var rasConn: HRASConn // pointer to variable to receive connection handle
): DWORD; stdcall;function RasEnumConnections(RASConn: PrasConn; { buffer to receive Connections data }
var BufSize: DWord; { size in bytes of buffer }
var Connections: DWord { number of Connections written to buffer }
): LongInt; stdcall;Function RasEnumEntries (
reserved: PChar; // reserved, must be NULL
lpszPhonebook: PChar ; // pointer to full path and filename of phonebook file
lprasentryname: PRASENTRYNAME ; // buffer to receive phonebook entries
var lpcb : DWORD;// size in bytes of buffer
var lpcEntries : DWORD// number of entries written to buffer
) : DWORD; stdcall;function RasGetConnectStatus(RASConn: hrasConn; { handle to Remote Access Connection of interest }
RASConnStatus: PRASConnStatus { buffer to receive status data }
): LongInt; stdcall;function RasGetErrorString(ErrorCode: DWord; { error code to get string for }
szErrorString: PChar; { buffer to hold error string }
BufSize: DWord { sizeof buffer }
): LongInt; stdcall;function RasHangUp(RASConn: hrasConn { handle to the Remote Access Connection to hang up }
): LongInt; stdcall;function RasGetEntryDialParams(
lpszPhonebook:PChar; // pointer to the full path and filename of the phonebook file
VAR lprasdialparams:TRASDIALPARAMS; // pointer to a structure that receives the connection parameters
VAR lpfPassword : BOOL // indicates whether the user's password was retrieved
): DWORD; stdcall;implementationconst
RAS_DLL = 'RASAPI32.DLL';function RasDial; external RAS_DLL name 'RasDialA';
function RasEnumConnections; external RAS_DLL name 'RasEnumConnectionsA';
function RasEnumEntries; external RAS_DLL name 'RasEnumEntriesA';
function RasGetConnectStatus; external RAS_DLL name 'RasGetConnectStatusA';
function RasGetErrorString; external RAS_DLL name 'RasGetErrorStringA';
function RasHangUp; external RAS_DLL name 'RasHangUpA';
function RasGetEntryDialParams; external RAS_DLL name 'RasGetEntryDialParamsA';
end.//win98 passed
function Mydialup(const pppuser,ppppasswd,telno:string) :boolean;
var
dialpara:TRASDialParams;
begin
try
fillchar(dialpara,sizeof(dialpara),#0);
with dialpara do
begin
dwSize:=sizeof(TRASDialParams);
strcopy(szPhoneNumber,pchar(telno));
szCallbackNumber:='';
strcopy(szUserName,pchar(pppuser));
strcopy(szPassword,pchar(ppppasswd));
szDomain:='';
rashandle:=0;
result:=RasDial(nil,'',@dialpara,$FFFFFFFF,0,rashandle)=0;
end;
except
result:=false;
end;
end;
Unit ras_api;Interface
uses windows;Const
UNLEN = 256;
PWLEN = 256;
DNLEN = 15;
RAS_MaxEntryName = 256;
RAS_MaxDeviceName = 128;
RAS_MaxDeviceType = 16; RAS_MaxPhoneNumber = 128;
RAS_MaxCallbackNumber = RAS_MaxPhoneNumber;
PHRASConn = ^HRASConn;
HRASConn = DWORD;const
RASDialEvent = 'RASDialEvent';
WM_RASDialEvent = $0CCCD;
{ Enumerates intermediate states to a Connection. (See RasDial) }
RASCS_Paused = $1000;
RASCS_Done = $2000; RASBase = 600;
Success = 0;Const
RASCS_OpenPort = 0;
RASCS_PortOpened = 1;
RASCS_ConnectDevice = 2;
RASCS_DeviceConnected = 3;
RASCS_AllDevicesConnected = 4;
RASCS_Authenticate = 5;
RASCS_AuthNotify = 6;
RASCS_AuthRetry = 7;
RASCS_AuthCallback = 8;
RASCS_AuthChangePassword = 9;
RASCS_AuthProject = 10;
RASCS_AuthLinkSpeed = 11;
RASCS_AuthAck = 12;
RASCS_ReAuthenticate = 13;
RASCS_Authenticated = 14;
RASCS_PrepareForCallback = 15;
RASCS_WaitForModemReset = 16;
RASCS_WaitForCallback = 17; RASCS_Interactive = RASCS_Paused;
RASCS_RetryAuthentication = RASCS_Paused + 1;
RASCS_CallbackSetByCaller = RASCS_Paused + 2;
RASCS_PasswordExpired = RASCS_Paused + 3; RASCS_Connected = RASCS_Done;
RASCS_DisConnected = RASCS_Done + 1;Type
{ Identifies an active RAS Connection. (See RasConnectEnum) }
PRASConn = ^TRASConn;
TRASConn = record
dwSize: DWORD;
rasConn: HRASConn;
szEntryName: Array[0..RAS_MaxEntryName] Of Char;
szDeviceType : Array[0..RAS_MaxDeviceType] Of Char;
szDeviceName : Array [0..RAS_MaxDeviceName] of char;
end; PRASConnStatus = ^TRASConnStatus;
TRASConnStatus = Record
dwSize: LongInt;
rasConnstate: Word;
dwError: LongInt;
szDeviceType: Array[0..RAS_MaxDeviceType] Of Char;
szDeviceName: Array[0..RAS_MaxDeviceName] Of Char;
End; PRASDIALEXTENSIONS= ^TRASDIALEXTENSIONS;
TRASDIALEXTENSIONS= Record
dwSize: DWORD;
dwfOptions: DWORD;
hwndParent: HWnd;
reserved: DWORD;
end; PRASDialParams = ^TRASDialParams;
TRASDialParams = Record
dwSize: DWORD;
szEntryName: Array[0..RAS_MaxEntryName] Of Char;
szPhoneNumber: Array[0..RAS_MaxPhoneNumber] Of Char;
szCallbackNumber: Array[0..RAS_MaxCallbackNumber] Of Char;
szUserName: Array[0..UNLEN] Of Char;
szPassword: Array[0..PWLEN] Of Char;
szDomain: Array[0..DNLEN] Of Char;
end; PRASEntryName = ^TRASEntryName;
TRASEntryName = Record
dwSize: LongInt;
szEntryName: Array[0..RAS_MaxEntryName] Of Char;
// Reserved: Byte;
End;
Function RasDial(
lpRasDialExtensions : PRASDIALEXTENSIONS ; // pointer to function extensions data
lpszPhonebook: PChar; // pointer to full path and filename of phonebook file
lpRasDialParams : PRASDIALPARAMS; // pointer to calling parameters data
dwNotifierType : DWORD; // specifies type of RasDial event handler
lpvNotifier: DWORD; // specifies a handler for RasDial events
var rasConn: HRASConn // pointer to variable to receive connection handle
): DWORD; stdcall;function RasEnumConnections(RASConn: PrasConn; { buffer to receive Connections data }
var BufSize: DWord; { size in bytes of buffer }
var Connections: DWord { number of Connections written to buffer }
): LongInt; stdcall;Function RasEnumEntries (
reserved: PChar; // reserved, must be NULL
lpszPhonebook: PChar ; // pointer to full path and filename of phonebook file
lprasentryname: PRASENTRYNAME ; // buffer to receive phonebook entries
var lpcb : DWORD;// size in bytes of buffer
var lpcEntries : DWORD// number of entries written to buffer
) : DWORD; stdcall;function RasGetConnectStatus(RASConn: hrasConn; { handle to Remote Access Connection of interest }
RASConnStatus: PRASConnStatus { buffer to receive status data }
): LongInt; stdcall;function RasGetErrorString(ErrorCode: DWord; { error code to get string for }
szErrorString: PChar; { buffer to hold error string }
BufSize: DWord { sizeof buffer }
): LongInt; stdcall;function RasHangUp(RASConn: hrasConn { handle to the Remote Access Connection to hang up }
): LongInt; stdcall;function RasGetEntryDialParams(
lpszPhonebook:PChar; // pointer to the full path and filename of the phonebook file
VAR lprasdialparams:TRASDIALPARAMS; // pointer to a structure that receives the connection parameters
VAR lpfPassword : BOOL // indicates whether the user's password was retrieved
): DWORD; stdcall;implementationconst
RAS_DLL = 'RASAPI32.DLL';function RasDial; external RAS_DLL name 'RasDialA';
function RasEnumConnections; external RAS_DLL name 'RasEnumConnectionsA';
function RasEnumEntries; external RAS_DLL name 'RasEnumEntriesA';
function RasGetConnectStatus; external RAS_DLL name 'RasGetConnectStatusA';
function RasGetErrorString; external RAS_DLL name 'RasGetErrorStringA';
function RasHangUp; external RAS_DLL name 'RasHangUpA';
function RasGetEntryDialParams; external RAS_DLL name 'RasGetEntryDialParamsA';
end.//win98 passed
function Mydialup(const pppuser,ppppasswd,telno:string) :boolean;
var
dialpara:TRASDialParams;
begin
try
fillchar(dialpara,sizeof(dialpara),#0);
with dialpara do
begin
dwSize:=sizeof(TRASDialParams);
strcopy(szPhoneNumber,pchar(telno));
szCallbackNumber:='';
strcopy(szUserName,pchar(pppuser));
strcopy(szPassword,pchar(ppppasswd));
szDomain:='';
rashandle:=0;
result:=RasDial(nil,'',@dialpara,$FFFFFFFF,0,rashandle)=0;
end;
except
result:=false;
end;
end;
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货