rasdial 参数问题,拿分来吧红星星的同志

VCLIFE 2010-06-18 07:20:52
dwRet=RasDial(NULL,NULL,&RasDialParams,0xFFFFFFFF,hWnd, &m_hRasConn); // 执行正常,不多说了


dwRet=RasDial(NULL,NULL,&RasDialParams,0,RasDialFunc,&m_hRasConn);
static void WINAPI RasDialFunc(UINT unMsg,RASCONNSTATE rasconnstate,DWORD dwE);//此函数已实现
这种方式返回错误87,参数错误。我想问题是出在RasDialFunc上边,定义的类型不对吗?我看了MSDN了,就这么说的,为什么参数不对呢??
...全文
229 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
VCLIFE 2010-07-05
  • 打赏
  • 举报
回复
这个帖子已经结了,你别再这儿说话了,没有人看到啊
scjlixia 2010-07-05
  • 打赏
  • 举报
回复
DWORD dwRet;
lphRasConn = NULL;
WCHAR szEntryName[257];
QString str;
str = "China Unicom";
str.toWCharArray(szEntryName);//Qt中将字符串转换为宽字符数组
memset(&RasDialParams,0,sizeof(RASDIALPARAMS));
RasDialParams.dwSize = sizeof(RASDIALPARAMS);
wcscpy(RasDialParams.szEntryName,szEntryName);
dwRet = RasDial(NULL,NULL,&RasDialParams,0,NULL,lphRasConn);
qDebug() << "RasDial Return:" << dwRet << endl;
if(dwRet == ERROR_SUCCESS)
{
return true;
}
else
{
return false;
}
“China Unicom”是我使用RasSetEntryProperties()函数创建的一个拨号连接,通过网络邻居—属性,可以查看到此连接。且通过单击鼠标右键,选择连接,再单击拨号也可以连接。但使用上述接口函数RasDial进行拨号连接时,始终出现87错误(ERROR_INVALID_PARAMETER),不知道问题处在哪里,请高人指点!
VCLIFE 2010-07-05
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 scjlixia 的回复:]
楼主你好,我也遇到了跟你一模一样的问题,很头疼。你的问题解决了吗?能否告知一下怎么解决这个问题啊?
[/Quote]
应该是wince根本不支持这种方式,后来我用注册消息的方法也没有实现,斑竹推荐我使用win32,比较晕
scjlixia 2010-07-05
  • 打赏
  • 举报
回复
楼主你好,我也遇到了跟你一模一样的问题,很头疼。你的问题解决了吗?能否告知一下怎么解决这个问题啊?
frankingchen 2010-06-22
  • 打赏
  • 举报
回复
还是解决不了估计
VCLIFE 2010-06-21
  • 打赏
  • 举报
回复
dwRet=RasDial(NULL,NULL,&RasDialParams,0,RasDialFunc,&m_hRasConn);
用这个报87错误,连接已经存在了,只是拨号一下
VCLIFE 2010-06-21
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 91program 的回复:]
想让别人帮你分析问题,最好给出比较完整的代码

你认为是RasDialFunc的问题,难道一定是它的问题!
[/Quote]
哦,谢谢,我还以为就这么点代码就够了
m_hRasConn=NULL;
memset ((char *)&RasDialParams, 0, sizeof(RasDialParams));
RasDialParams.dwSize = sizeof(RasDialParams);
wcscpy(RasDialParams.szEntryName,szEntry);
wcscpy(RasDialParams.szPhoneNumber,_T(""));
wcscpy(RasDialParams.szCallbackNumber,_T(""));
wcscpy(RasDialParams.szUserName,_T(""));
wcscpy(RasDialParams.szPassword,_T(""));
wcscpy(RasDialParams.szDomain,_T(""));

// nRet=RasSetEntryDialParams(NULL, &RasDialParams, FALSE);

// 以下是同步拨号模式
HWND hWnd;
DWORD dwRet;
// dwRet=RasDial(NULL,NULL,&RasDialParams,0xFFFFFFFF,hWnd, &m_hRasConn);
dwRet=RasDial(NULL,NULL,&RasDialParams,0,RasDialFunc,&m_hRasConn);
if(dwRet!=0)
{
RasHangUp(m_hRasConn);
return FALSE;
}

void WINAPI CDemoDlg::RasDialFunc(UINT unMsg,RASCONNSTATE rasconnstate,DWORD dwError)
{
CDemoDlg *DemoDlg=(CDemoDlg*)AfxGetApp()->m_pMainWnd;
DemoDlg->PostMessage(WM_RASDIALEVENT,(WPARAM)rasconnstate,(LPARAM)rasconnstate);

CString str;

switch(rasconnstate)
{
case RASCS_OpenPort:
str= "正在打开端口...";
break;

case RASCS_PortOpened:
str= "端口已经打开";
break;

case RASCS_ConnectDevice:
str= "正在连接设备";
break;

case RASCS_DeviceConnected:
str= "设备已经连接";
break;

case RASCS_AllDevicesConnected:
str= "所有设备已经连接上";
break;

代码片段
91program 2010-06-18
  • 打赏
  • 举报
回复
想让别人帮你分析问题,最好给出比较完整的代码

你认为是RasDialFunc的问题,难道一定是它的问题!

19,502

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
  • 嵌入开发(WinCE)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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