我想编写一个程序,完成的功能是首先自动获取当前激活的拨号连接,然后采用程序的方法关闭它。
我首先调用的是RasEnumConnection(),但是该函数的返回值总是为632,报告错误原因为:检测到一个不正确的结构大小,我的程序如下,请各位高人指点迷津。多谢!多谢!//我的程序都是从MSDN中复制而来,已经可以顺利编译调试,但就是返回出错。LPRASCONN lpRasConn;
lpRasConn = (LPRASCONN)new char[sizeof(RASCONN)];
if (NULL==lpRasConn) return;
lpRasConn->dwSize = sizeof(RASCONN);DWORD nRet=0;
DWORD lpcb= sizeof(RASCONN);
DWORD lpcConnections = 0;
nRet = RasEnumConnections(lpRasConn, &lpcb, &lpcConnections);if (nRet != 0)
{
TRACE("\nRasEnumConnections failed: Error = %d\n", nRet);
}
else
{
printf("The following RAS connections are currently active\n\n");
}
char szBuf[256] = "";
if (nRet)
{//出错处理
RasGetErrorString((UINT)nRet, (LPSTR)szBuf, 256);
TRACE(CString("Internal error ") + CString(szBuf) + "\n");
}
我首先调用的是RasEnumConnection(),但是该函数的返回值总是为632,报告错误原因为:检测到一个不正确的结构大小,我的程序如下,请各位高人指点迷津。多谢!多谢!//我的程序都是从MSDN中复制而来,已经可以顺利编译调试,但就是返回出错。LPRASCONN lpRasConn;
lpRasConn = (LPRASCONN)new char[sizeof(RASCONN)];
if (NULL==lpRasConn) return;
lpRasConn->dwSize = sizeof(RASCONN);DWORD nRet=0;
DWORD lpcb= sizeof(RASCONN);
DWORD lpcConnections = 0;
nRet = RasEnumConnections(lpRasConn, &lpcb, &lpcConnections);if (nRet != 0)
{
TRACE("\nRasEnumConnections failed: Error = %d\n", nRet);
}
else
{
printf("The following RAS connections are currently active\n\n");
}
char szBuf[256] = "";
if (nRet)
{//出错处理
RasGetErrorString((UINT)nRet, (LPSTR)szBuf, 256);
TRACE(CString("Internal error ") + CString(szBuf) + "\n");
}
加上_WIN32_WINNT 也还是不行
DWORD nConnections=0;
DWORD cb=sizeof(RasConn);RasConn[0].dwSize=sizeof(RASCONN);
ret=RasEnumConnections(RasConn,&cb,&m_nConnections);