0

我在 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 时它始终有效.

知道会出什么问题吗?

4

1 回答 1

0

据我所知,您对 RasDial 的调用看起来不错。

我记得在DotRas的初始开发过程中遇到了这个问题。如果这是我的想法,如果您正在测试您的应用程序并在连接尝试正在进行时关闭应用程序,RAS 状态机会混淆并且连接保持打开状态,直到您重新启动(几乎所有版本的 Windows pre -Windows 8 表现出这种行为)机器。

这意味着,一旦您开始连接,除非您在 RasDial 尚未完成连接时返回给您的句柄上调用 RasHangUp,否则不要关闭您的应用程序。

于 2013-06-13T13:08:07.510 回答