NetLocalGroupEnum的问题

NetLocalGroupEnum这个函数是用来获取系统里的组的。这个组可以再mmc中的组策略中看到。

NET_API_STATUS NetLocalGroupEnum(
  LPCWSTR servername,
  DWORD level,
  LPBYTE* bufptr,
  DWORD prefmaxlen,
  LPDWORD entriesread,
  LPDWORD totalentries,
  PDWORD_PTR resumehandle );

msdn上写的bufptr的结果应该是an array of LOCALGROUP_INFO_1 structures

这个结构的定义应该是这样的

typedef struct _LOCALGROUP_INFO_1 {
  LPWSTR lgrpi1_name;
  LPWSTR lgrpi1_comment;
}
按照我的理解(*bufptr)应该是一个  LOCALGROUP_INFO_1 指针数组。

但是呢,(*bufptr+4)->lgrpi1_name的内容的竟然是(*bufptr+4)->lgrpi1_comment,(*bufptr+8)->lgrpi1_name才是下一个组的组名。

不知道哪里理解错了。


然后打印comment时候出来了好多问号。wprintf默认是不能直接打印的,需要加一句 setlocale(LC_ALL, "chs");

这个我觉得http://blog.csdn.net/applehoney/article/details/2228370讲得不错,不多解释了。


LPBYTE 其实是unsigned char*

LPDWORD 其实是unsigned int*

LPCWSTR 其实是WCHAR*

unsigned char*与LPCWSTR,也就是WCHAR*的时候,可以这么弄:

WCHAR* name = _T("test");

MultiByteToWideChar()总觉得用起来有点麻烦。不过如果要处理的是变量名,就需要用这个函数。

刚开始弄这些不明意义的数据类型还真是一头雾水啊- -||||

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值