请问:
    局域网中怎样获得某个域或工作组的用户列表?
    最好有代码。    Thanks.

解决方案 »

  1.   

    #ifndef UNICODE
    #define UNICODE
    #endif#include <stdio.h>
    #include <assert.h>
    #include <windows.h> 
    #include <lm.h>int wmain(int argc, wchar_t *argv[])
    {
       LPUSER_INFO_0 pBuf = NULL;
       LPUSER_INFO_0 pTmpBuf;
       DWORD dwLevel = 0;
       DWORD dwPrefMaxLen = -1;
       DWORD dwEntriesRead = 0;
       DWORD dwTotalEntries = 0;
       DWORD dwResumeHandle = 0;
       DWORD i;
       DWORD dwTotalCount = 0;
       NET_API_STATUS nStatus;
       LPTSTR pszServerName = NULL;   if (argc > 2)
       {
          fwprintf(stderr, L"Usage: %s [\\\\ServerName]\n", argv[0]);
          exit(1);
       }
       // The server is not the default local computer.
       //
       if (argc == 2)
          pszServerName = argv[1];
       wprintf(L"\nUser account on %s: \n", pszServerName);
       //
       // Call the NetUserEnum function, specifying level 0; 
       //   enumerate global user account types only.
       //
       do // begin do
       {
          nStatus = NetUserEnum(pszServerName,
                                dwLevel,
                                FILTER_NORMAL_ACCOUNT, // global users
                                (LPBYTE*)&pBuf,
                                dwPrefMaxLen,
                                &dwEntriesRead,
                                &dwTotalEntries,
                                &dwResumeHandle);
          //
          // If the call succeeds,
          //
          if ((nStatus == NERR_Success) || (nStatus == ERROR_MORE_DATA))
          {
             if ((pTmpBuf = pBuf) != NULL)
             {
                //
                // Loop through the entries.
                //
                for (i = 0; (i < dwEntriesRead); i++)
                {
                   assert(pTmpBuf != NULL);               if (pTmpBuf == NULL)
                   {
                      fprintf(stderr, "An access violation has occurred\n");
                      break;
                   }
                   //
                   //  Print the name of the user account.
                   //
                   wprintf(L"\t-- %s\n", pTmpBuf->usri0_name);               pTmpBuf++;
                   dwTotalCount++;
                }
             }
          }
          //
          // Otherwise, print the system error.
          //
          else
             fprintf(stderr, "A system error has occurred: %d\n", nStatus);
          //
          // Free the allocated buffer.
          //
          if (pBuf != NULL)
          {
             NetApiBufferFree(pBuf);
             pBuf = NULL;
          }
       }
       // Continue to call NetUserEnum while 
       //  there are more entries. 
       // 
       while (nStatus == ERROR_MORE_DATA); // end do
       //
       // Check again for allocated memory.
       //
       if (pBuf != NULL)
          NetApiBufferFree(pBuf);
       //
       // Print the final count of users enumerated.
       //
       fprintf(stderr, "\nTotal of %d entries enumerated\n", dwTotalCount);   return 0;
    }
      

  2.   

    我在win2000 + VC6.0 下编译出现如下错误;
    1. error LNK2001: unresolved external symbol _NetApiBufferFree@4
    2. error LNK2001: unresolved external symbol _NetUserEnum@32
    3. fatal error LNK1120: 2 unresolved externals 
         Error executing link.exe.再问是何处有问题?