程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP綜合 >> VB中的RasEnumConnections函數返回632錯誤解決方法

VB中的RasEnumConnections函數返回632錯誤解決方法

編輯:PHP綜合

今天用了一下RasEnumConnections函數,發現MSDN上的例子是錯誤的。

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成目標系統的值。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved