关于枚举局域网内计算机遇到的问题(WNet,附函数)........waiting for your answer!

hfree 2003-10-11 01:08:37
大家看一下下面这一个枚举函数有错吗??
已经连接了ws2_32.lib mpr.lib库了。

void CEnumDialog::StartEnum()
{

CString strTemp ;
struct hostent * pHost ;
struct in_addr * pAddr ;

TRACE("==================Start Enum====================\n") ;

DWORD dwScope = RESOURCE_CONTEXT;//连接状态,Wnetopenenum参数
NETRESOURCE *pNetResource = NULL ;
HANDLE handle ;
WNetOpenEnum(dwScope,NULL,NULL,NULL,&handle) ;

WSADATA wsaData ;
WSAStartup(MAKEWORD(1,1),&wsaData) ;


if(handle)
{
DWORD dwCount = 0xFFFFFFFF ;
LPVOID lpBuffer = new char[2048] ;
DWORD BufferSize = 2048 ;

TRACE("======================Handle=====================\n") ;
WNetEnumResource(handle,&dwCount,lpBuffer,&BufferSize) ;
pNetResource = (NETRESOURCE*)lpBuffer ;

char szHostName[128] ;

for(int i = 0 ;i< BufferSize/sizeof(NETRESOURCE);i++,pNetResource++)
{
TRACE("=====================Cycle====================\n") ;
if(pNetResource->dwUsage == RESOURCEUSAGE_CONTAINER )
//&& pNetResource->dwType == RESOURCETYPE_ANY)
//确保可以pRemoteName可以被WNetOpenEnum获取
{
TRACE("==============Usage and Type================\n") ;
if(pNetResource->lpRemoteName)
//在Trace中lpRemoteName是NULL的,我用的是WinMe,和操作系统版本有关吗?
//还是我这一个函数本身就存在错误
{
TRACE("=========RemoteName========\n") ;
CString strhostname ;
pNetResource->lpRemoteName ;
if( 0 == strhostname.Left(2).Compare("\\\\") ) strhostname = strhostname.Right(strhostname.GetLength() - 2) ;

gethostname(szHostName,strlen(szHostName)) ;
pHost = gethostbyname(strhostname) ;

if(pHost == NULL)
continue ;

pAddr = (struct in_addr*)pHost->h_addr_list[i] ;

int a = pAddr->S_un.S_un_b.s_b1 ;
int b = pAddr->S_un.S_un_b.s_b2 ;
int c = pAddr->S_un.S_un_b.s_b3 ;
int d = pAddr->S_un.S_un_b.s_b4 ;

strTemp.Format("%s---%d.%d.%d.%d",strhostname,a,b,c,d) ;

TRACE("==============%S==============\n",strTemp) ;


m_enumList.AddString(strTemp) ;
}
else
TRACE("===========Remote Name == Null===========\n") ;
}
}
delete lpBuffer ;
WNetCloseEnum(handle) ;
}
WSACleanup() ;
}
...全文
33 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧