RASDIAL API无法在64位系统上连接[在32位系统/ VPN上工作真棒]

时间:2011-05-15 04:31:59

标签: c++ vpn

我基本上是尝试使用windows api连接到VPN连接。 它就像任何Windows 32位系统上的魅力一样。它始终连接。 但是当我尝试在64位系统上连接它时。它总是失败。 如果我做错了,请你建议。

这是我的代码:

    LPRASDIALPARAMS      rdParams; 
    DWORD               cb = sizeof(RASDIALPARAMS);
    rdParams = (LPRASDIALPARAMS)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, cb); 
    rdParams->dwSize = sizeof(RASDIALPARAMS);
    dwError |= StringCbCopyW( rdParams->szEntryName,
        sizeof(rdParams->szEntryName), yourProfile.c_str() );
    dwError |= StringCbCopyW( rdParams->szPhoneNumber,
        sizeof(rdParams->szPhoneNumber), yourUrl.c_str() );
    dwError |= StringCbCopyW( rdParams->szUserName,
        sizeof(rdParams->szUserName), yourUser.c_str());
    dwError |= StringCbCopyW( rdParams->szPassword,
        sizeof(rdParams->szPassword), yourPassword.c_str() );
    dwError |= StringCbCopyW( rdParams->szDomain,
        sizeof(rdParams->szDomain), yourGroupName.c_str());
    dwError |= StringCbCopyW( rdParams->szDomain,
        sizeof(rdParams->szDomain), L"\0");

    HRASCONN hRasConn = NULL;
    DWORD dwRet = RasDial( NULL, pbkPath.c_str(),
        rdParams, 0, 0L, &hRasConn );

我需要设置特定于64位系统的任何东西。

1 个答案:

答案 0 :(得分:1)

基本上,您需要从64位应用程序而不是32位应用程序访问dll或lib。确保您的应用程序是64位应用程序。