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 を使用するときも常に機能します。コマンド ライン アプリケーション内で上記のコードを使用すると同じエントリにダイヤルできますが、MFC アプリケーション内で使用すると機能しません。 .

何がうまくいかないのでしょうか?

4

1 に答える 1

0

私の知る限り、RasDial への呼び出しは問題ないようです。

DotRasの初期開発中にこの問題が発生したことを覚えています。私の考えでは、アプリケーションをテストしていて、接続試行の進行中にアプリケーションを閉じると、RAS ステート マシンが混乱し、再起動するまで接続が開いたままになります (ほとんどすべてのバージョンの Windows pre -Windows 8 はこの動作を示します)。

つまり、接続を開始したら、接続が完了していない場合に RasDial が返したハンドルで RasHangUp を呼び出さない限り、アプリケーションを閉じないでください。

于 2013-06-13T13:08:07.510 に答える