最简单的RAS拨号调用问题,请高手进来看看,送分题!(50分)

  • 主题发起人 主题发起人 rejoise
  • 开始时间 开始时间
R

rejoise

Unregistered / Unconfirmed
GUEST, unregistred user!
我想实现最简单的拨号,拨号连接名为‘1’,编译通过,但运行出错,请大虾看看
如何修改我的代码。另请提供给我一个RAS控件,给出地址或发至sension@etang.com
谢谢大虾!原代码如下
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
public
end;
Const
UNLEN = 256;
PWLEN = 256;
DNLEN = 15;
RAS_MaxEntryName = 256;
RAS_MaxDeviceName = 128;
RAS_MaxDeviceType = 16;
RAS_MaxPhoneNumber = 128;
RAS_MaxCallbackNumber = RAS_MaxPhoneNumber;
Type
PHRASConn = ^HRASConn;
HRASConn = DWORD;
Type
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;
var
Form1: TForm1;
Function RasDial(
lpRasDialExtensions : PRASDIALEXTENSIONS ;
lpszPhonebook: PChar;
lpRasDialParams : PRASDIALPARAMS;
dwNotifierType : DWORD;
lpvNotifier: DWORD;
var rasConn: HRASConn): DWORD; stdcall;
implementation
const
RAS_DLL = 'RASAPI32';
function RasDial; external RAS_DLL name 'RasDialA';
{$R *.DFM}
procedure TForm1.Button1Click(Sender: TObject);
var
i:PRASDIALPARAMS;
j:HRASConn;
begin
i.dwSize:=sizeof(PRASDIALPARAMS);
i.szEntryName[0]:='1';
i.szUserName[0]:='0' ;
i.szPassword[0]:='0';
j:=0;
rasdial(nil,nil,i,0,0,j);
end;
end.
 
大家给我看一看啊!
 
From http://www.vclxx.org :

13. INETLOG.ZIPTmsRas 是完整控制 RAS ( Remote Access Service) 的非可视构件,
附上得知 RAS 使用状况的 Winodws NT/2000 Service 范例程序( 1.0 版,附源码 ),
作者 : Douglas Olender。

14. RAS.ZIPWindows95 拨号网络及远端存取服务 ( Remote AccessService ) 构件
( 附源码 ),作者 : Daniel Polistchuck。

15. RASAPI.ZIPRAS (Remote Access Service) API 宣告单元 ( 附源码),
作者 : Phillip D. Clark。

16. RASCMP30.ZIP控制 Windows95/98 拨号网络及远端存取服务
( RemoteAccess Service ) 构件 ( 3.0 版,附源码 ),作者 : Angus Robertson。

17. RASDLG.ZIPRASDLG.H 宣告档的 Object Pascal 版本,能够运用此宣告档修改Windows
NT 4.0 中的拨号网络电话簿项目 ( Phonebook-entries ) ( 1.0 版,附源码) ,
作者 : Arne Damvin。

18. RASMG104.ZIP执行 Windows 95 拨号网络的非可视构件 ( 1.04版,附源码 ),
作者 : Frank Plagge。

19. RASOBJ.ZIPTMagRas 是管理及控制 Windows 95/98/NT/2000 "拨号网络"的非可视构件,
支持 Windows 2000 ISDN 拨号等延伸功能 ( 4.61 版,无源码Delphi 3.0/4.0/5.0/6.0 版
适用 ),作者 : Angus Robertson。

20. TRASCTRL.ZIPTRASControl 是封装 RAS API 可以控制 Windows 95/98/NT拨号网络的
构件,提供多线程进行拨号的动作 ( 1.2 版,附源码 ),作者: David A. Bussey。

到www.vclxx.org 用RAS 查询
 
接受答案了.
 

Similar threads

I
回复
0
查看
562
import
I
I
回复
0
查看
568
import
I
I
回复
0
查看
616
import
I
后退
顶部