情人节前夕的问题
这么有气氛的节日里,爱,只能在这里度过了,祝大家情人节快乐!多了,顺便还得请教个问题。
windos数据类型,有那么多(指针,常量指针,unicode型的相关类型最为头痛),有那位高手有相对全面的不同数据类型之间转换的资料呀?如:char tchar char *,cstring,lpctstr,lpcwstr,lpstr 等。
今天写了一个关于把nt的某一已存在用户添加到某一已存在组里的小程序,却始终得不到正确结果,我怀疑是因为在将参数wchar_t * 转换成 LPCWSTR使出错了,现把程序贴出来请大家帮忙解答!
#include "stdafx.h"
#ifndef UNICODE
#define UNICODE
#endif
#include <stdio.h>
#include <windows.h>
#include <lm.h>
int wmain(int argc, wchar_t *argv[])
{
NET_API_STATUS nStatus;
_LOCALGROUP_MEMBERS_INFO_3 users;
DWORD dLevel;
dLevel = 3;
if (argc != 3)
{
fwprintf(stderr, L"Usage: %s \\ UserName GroupName\n", argv[0]);
exit(1);
}
users.lgrmi3_domainandname = argv[1];
nStatus = NetGroupSetUsers(NULL,(LPCWSTR)argv[2],dLevel,(LPBYTE)&users,1);
//
// If the call succeeds, inform the user.
//
if (nStatus == NERR_Success)
fwprintf(stderr, L"Group %s has been successful for %s\n", argv[2],argv[1]);
//
// Otherwise, print the system error.
//
else if (nStatus == NERR_GroupNotFound)
{
fprintf(stderr,"该组不存在\n");
fprintf(stderr,"the result is %s\n",argv[2]);
}
else if (nStatus == ERROR_ACCESS_DENIED)
fprintf(stderr,"用户没有权限\n");
else if (nStatus == ERROR_NO_SUCH_MEMBER)
fprintf(stderr,"用户不存在\n");
else if (nStatus == ERROR_MEMBER_IN_ALIAS)
fprintf(stderr,"添加组重复\n");
else if (nStatus == ERROR_INVALID_MEMBER)
fprintf(stderr,"最后一个错误\n");
else
fprintf(stderr, "A system error has occurred: %d\n", nStatus);
return 0;
}
如可执行文件为aaa.exe,已知用户:bbb,已知用户:ttt,在命令行键入:
aaa bbb ttt
则提示结果为
该组不存在
the result is t
我希望的是程序顺利执行成功 Group ttt has been successful for bbb
请高手指点迷津!多谢了!!!!!