我在MFC应用程序中使用RasDial API。事实证明,API总是返回633(端口正在使用或未配置),而相同的代码在命令行应用程序中正常工作。
以下是代码段
RASDIALPARAMS rdParams;
ZeroMemory(&rdParams, sizeof(RASDIALPARAMS));
rdParams.dwSize = sizeof(RASDIALPARAMS);
_tcscpy(rdParams.szEntryName, TEXT("VPN"));
m_hRasConn = 0;
DWORD dwRet = RasDial( NULL, NULL, &rdParams, 1, NULL, &m_hRasConn);
VPN的电话簿条目非常完美,它在我手动连接时以及使用rasdial.exe时始终有效 当我在命令行应用程序中使用上面的代码时,可以拨打相同的条目,但是当我在MFC应用程序中使用它时,它永远不会工作。
知道可能出现什么问题吗?
答案 0 :(得分:0)
据我所知,您对RasDial的调用看起来很不错。
我记得在DotRas的初始开发过程中遇到此问题。如果这是我在想的,如果你正在测试你的应用程序并在连接尝试正在进行时关闭应用程序,那么RAS状态机会混淆并且连接保持打开状态直到你重新启动(几乎所有版本的Windows都预先-Windows 8表现出这种行为)机器。
这意味着,一旦你开始连接,除非你在RasDial尚未完成连接的情况下回复给你的句柄上调用RasHangUp,否则不要关闭你的应用程序。