关于拨号上网的问题

keluos 2003-08-24 04:52:03
我需要写一个来控制拨号上网的连接与断开,可是现在一点思路都没有,请那位大侠给点提示或者发一些例子给我:luoshan@263.net.
如果再做不出来就要丢掉饭碗了,请大家救我啊!bow.
...全文
31 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
pbMaster 2003-08-25
  • 打赏
  • 举报
回复
下是开始拨号:

void __fastcall TForm1::Button1Click(TObject *Sender)
{
//
hrasconn=NULL;
RASDIALPARAMS params;
char buf[256];
memset(buf,0,256);

params.dwSize=sizeof(RASDIALPARAMS);

lstrcpy(params.szEntryName,Edit1->Text.c_str());
lstrcpy(params.szPhoneNumber,Edit2->Text.c_str());
lstrcpy(params.szUserName,Edit3->Text.c_str());
lstrcpy(params.szPassword,Edit4->Text.c_str());
lstrcpy(params.szDomain,"");

ok=false;

int ret=RasDialA(NULL,
NULL,
¶ms,
0,
&RasDialFunc,
&hrasconn);
if(ret!=0)
{
RasGetErrorString(ret, buf, 256);
memStatus->Lines->Add(buf);

}

}
pbMaster 2003-08-25
  • 打赏
  • 举报
回复
下是会调函数的定义:

void WINAPI RasDialFunc(UINT MSG,RASCONNSTATE rasconnstate,DWORD dwError)
{
//
char szRasString[256]; // Buffer for storing the error string
memset(szRasString,0,256);
DWORD cb=sizeof(RASPPPIP);
DWORD ret;

if (dwError) // Error occurred
{
RasGetErrorString((UINT)dwError, szRasString, 256);
Form1->memStatus->Lines->Add(szRasString);
return;
}

switch (rasconnstate)
{
// Running States
case RASCS_OpenPort:
Form1->memStatus->Lines->Add("Opening port...");
break;

case RASCS_PortOpened:
Form1->memStatus->Lines->Add("Port opened.");
break;

case RASCS_Authenticated:
Form1->memStatus->Lines->Add("Authentication complete.");
break;

case RASCS_Connected:
Form1->memStatus->Lines->Add("Connection Connected.");

Form1->lpProjection=new RASPPPIP;
Form1->lpProjection->dwSize=sizeof(RASPPPIP);
if(RasGetProjectionInfo(Form1->hrasconn,RASP_PppIp,Form1->lpProjection,&cb)==ERROR_SUCCESS)
{
Form1->memStatus->Lines->Add("Server IP:"+(AnsiString)(Form1->lpProjection->szServerIpAddress));
Form1->memStatus->Lines->Add("Local IP:"+(AnsiString)(Form1->lpProjection->szIpAddress));
Form1->ok=true;
}
break;

case RASCS_Disconnected:
Form1->memStatus->Lines->Add("Disconnecting...");
break;

default:
Form1->memStatus->Lines->Add("Unknown Status ");
break;
}
}

pbMaster 2003-08-25
  • 打赏
  • 举报
回复
下是头文件!


//---------------------------------------------------------------------------

#ifndef Unit1H
#define Unit1H
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>

#include "ras.h"
#include <raserror.h>
void WINAPI RasDialFunc(UINT MSG,RASCONNSTATE rasconnstate,DWORD dwError);
//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published: // IDE-managed Components
TButton *Button1;
TMemo *memStatus;
TEdit *Edit1;
TLabel *Label1;
TEdit *Edit2;
TLabel *Label2;
TEdit *Edit3;
TLabel *Label3;
TEdit *Edit4;
TLabel *Label4;
TButton *Button2;
void __fastcall Button1Click(TObject *Sender);
void __fastcall Button2Click(TObject *Sender);
private: // User declarations
public: // User declarations
HRASCONN hrasconn;
RASPPPIP * lpProjection;
bool ok;
__fastcall TForm1(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif
keluos 2003-08-25
  • 打赏
  • 举报
回复
非常感谢mywfool和pbmaster,问题已经解决。
yaveymao 2003-08-24
  • 打赏
  • 举报
回复
RasDial中有个参数在WIN98,2000中不同
yaveymao 2003-08-24
  • 打赏
  • 举报
回复
在网上找关于RasDial的用法。以前网上有个VB的例子,我把它翻译成BCB可以用,代码现在找不到了,不要意思。挂断好象是使用RasHangUp函数。RasDial中有个参数在WIN98,2000中不用,请注意。

1,316

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 网络及通讯开发
社区管理员
  • 网络及通讯开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧