在做一个拨号软件,我想异步调用拨号函数,就是
RasDial(NULL,NULL,&rdParams,0L, (LPVOID)RasDialFunc,&hRasConn);
在程序中我也这样声明回调函数RasDialFunc,把它声明为全局变量;
VOID WINAPI RasDialFunc(UINT unMsg, RASCONNSTATE rasconnstate, DWORD dwError);
{
if (unMsg != WM_RASDIALEVENT) TRACE("Strange event!\n");
//这里我想实现的是对拨号过程中的rasconnstate实时的显示出来(我的工程是基于对话框的),类似于
switch(rasconnstate)
{
case RASCS_OpenPort:
// this->m_dialstatus.AddString("正在打开端口......"); break;将此信息显示对话框中,可是在这个函数里,对话框的变量并不能使用,怎么回事??????????
case RASCS_PortOpened:
// this->m_dialstatus.AddString("端口已打开!"); break;
......
}
}
诸位谁用过这个函数的,麻烦告诉小弟,好吗?谢谢了,只有这么多分了。
RasDial(NULL,NULL,&rdParams,0L, (LPVOID)RasDialFunc,&hRasConn);
在程序中我也这样声明回调函数RasDialFunc,把它声明为全局变量;
VOID WINAPI RasDialFunc(UINT unMsg, RASCONNSTATE rasconnstate, DWORD dwError);
{
if (unMsg != WM_RASDIALEVENT) TRACE("Strange event!\n");
//这里我想实现的是对拨号过程中的rasconnstate实时的显示出来(我的工程是基于对话框的),类似于
switch(rasconnstate)
{
case RASCS_OpenPort:
// this->m_dialstatus.AddString("正在打开端口......"); break;将此信息显示对话框中,可是在这个函数里,对话框的变量并不能使用,怎么回事??????????
case RASCS_PortOpened:
// this->m_dialstatus.AddString("端口已打开!"); break;
......
}
}
诸位谁用过这个函数的,麻烦告诉小弟,好吗?谢谢了,只有这么多分了。
CDialog *pdlg;
需要在对话框对它赋值。以后在RasDialFunc内就用pdlg->m_dialstatus.AddString调用。
this替换为
AfxGetMainWnd()然后强制转换
switch(rasconnstate)
{
case RASCS_OpenPort:
//pDlg ->m_dialstatus.AddString("正在打开端口......");
}