RASDIAL API 无法在 64 位系统上连接 [ 在 32 位系统/VPN 上表现出色]

发布于 2024-11-07 11:17:52 字数 1233 浏览 4 评论 0原文

我基本上是尝试使用 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 位系统进行设置的内容。

I am basically trying to connect to a VPN connection using the windows api.
It works like a charm on any windows 32bit systems. It always connects.
But when I try to connect it on a 64 bit system. It always fails.
Please could you suggest, if I am doing anything wrong.

This is my code:

    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 );

Is there anything that I need to set specific to 64bit systems.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

鯉魚旗 2024-11-14 11:17:52

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

Basically you would need to access the dll or lib from a 64bit application instead of 32bit. make sure your application is a 64bit app.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文