VB中的RasEnumConnections函数返回632错误解决方法
2014-07-29 00:00
435 查看
今天用了一下RasEnumConnections函数,发现MSDN上的例子是错误的。
MSDN上RasEnumConnections的文档是这么说的:
MSDN上提供的示例代码也是这么写的:
可惜这个例子是错误的,至少在XP SP3上是错误的,RasEnumConnections函数返回的是ERROR_INVALID_SIZE(632),而不是ERROR_BUFFER_TOO_SMALL。解决的方法是第一个参数不要传入NULL,而是传入一个正确设置了dwSize的RASCONN结构,一般dwSize设为sizeof(RASCONN)即可;但是如果你的程序要在早期的系统上运行,则需要HARD CODE成目标系统的值。
MSDN上RasEnumConnections的文档是这么说的:
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上提供的示例代码也是这么写的:
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中的RasEnumConnections函数返回632错误解决方法
- 关于VB调用Access的Rnd函数随机返回表中数据的解决方法
- RegQueryValueEx函数返回234错误解决方法
- RegQueryValueEx函数返回234错误解决方法
- RegQueryValueEx函数返回234错误解决方法
- RegQueryValueEx函数返回234错误解决方法
- 程序中和有js函数的网页交互,线程中调用 get_Script 就会错误的解决方法,由于COM的线程安全问题
- vc编译错误:不能解析某些函数的解决方法
- 客户端在发送邮件的时候,邮件服务器返回Relaying denied错误的解决方法
- 刻盘是提示函数错误的解决方法
- js中的window.open返回object的错误的解决方法
- php调用存储过程返回结果集,解决can't return a result set in the given context错误的方法
- vb 关闭时 内存错误 解决方法
- php调用存储过程返回结果集,解决can't return a result set in the given context错误的方法
- VB中对象变量或with块变量错误(91号错误)解决方法
- php调用存储过程返回结果集,解决can't return a result set in the given context错误的方法
- php调用存储过程返回结果集,解决can't return a result set in the given context错误的方法
- 关于VB错误“文件未找到:'c:/windows/sytem32/ieframe.dll/1'“的解决方法
- C++ link2005 error 错误 解决方法汇总(一般重复定义,如果都是不就是 函数定义和实现没有分离)
- CryptAcquireContext函数返回“密钥集不存在”错误的解决代码