找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1231|回复: 0
打印 上一主题 下一主题

VB中的RasEnumConnections函数返回632错误解决方法

[复制链接]

2588

主题

2588

帖子

7694

积分

论坛元老

Rank: 8Rank: 8

积分
7694
跳转到指定楼层
楼主
发表于 2018-2-14 05:55:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

            今天用了一下RasEnumConnections函数,发现MSDN上的例子是错误的。
MSDN上RasEnumConnections的文档是这么说的:
[U]复制代码[/U] 代码如下:
To determine the required buffer size, call RasEnumConnections with lprasconn set to NULL. The variable pointed to by lpcb should be set to zero. The function will return the required buffer size in lpcb and an error code of ERROR_BUFFER_TOO_SMALL.
MSDN上提供的示例代码也是这么写的:
[U]复制代码[/U] 代码如下:
DWORD __cdecl wmain(){
    DWORD dwCb = 0;
    DWORD dwRet = ERROR_SUCCESS;
    DWORD dwConnections = 0;
    LPRASCONN lpRasConn = NULL;
   
    dwRet = RasEnumConnections(lpRasConn, &dwCb, &dwConnections);
    if (dwRet == ERROR_BUFFER_TOO_SMALL) {
        // ......
    }
可惜这个例子是错误的,至少在XP SP3上是错误的,RasEnumConnections函数返回的是ERROR_INVALID_SIZE(632),而不是ERROR_BUFFER_TOO_SMALL。解决的方法是第一个参数不要传入NULL,而是传入一个正确设置了dwSize的RASCONN结构,一般dwSize设为sizeof(RASCONN)即可;但是如果你的程序要在早期的系统上运行,则需要HARD CODE成目标系统的值。
            
            
您可能感兴趣的文章:
  • VB调用Word拼写检查功能实例
  • VB实现的倒计时类代码详解
  • VB读取线程、句柄及写入内存的API代码实例
  • VB使用XMLHTTP实现Post与Get的方法
  • VB实现屏蔽文本框右键菜单的复制、粘贴等功能的方法
  • VB实现鼠标绘图实例代码
  • VB的32位程序在64位系统中出现文件和注册表自动转向的解决方法
            
  • 分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    用户反馈
    客户端