RASDIAL API 无法在 64 位系统上连接 [ 在 32 位系统/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 位系统进行设置的内容。
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 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
基本上,您需要从 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.