#include <windows.h>
#include <lm.h>
#include <stdio.h>BOOL GetFullName( char *UserName, char *Domain, char *dest )
{
WCHAR wszUserName[UNLEN+1]; // Unicode user name
WCHAR wszDomain[256];
LPBYTE ComputerName;struct _SERVER_INFO_100 *si100; // Server structure
struct _USER_INFO_2 *ui; // User structure// Convert ANSI user name and domain to UnicodeMultiByteToWideChar( CP_ACP, 0, UserName,
strlen(UserName)+1, wszUserName,
sizeof(wszUserName)/sizeof(wszUserName[0]) );
MultiByteToWideChar( CP_ACP, 0, Domain,
strlen(Domain)+1, wszDomain, sizeof(wszDomain)/sizeof(wszDomain[0]) );// Get the computer name of a DC for the domain.NetGetDCName( NULL, wszDomain, &ComputerName );// Look up the user on the DC.if( NetUserGetInfo( (LPWSTR) ComputerName,
(LPWSTR) &wszUserName, 2, (LPBYTE *) &ui ) )
{
printf( "Error getting user information.\n" );
return( FALSE );
}// Convert the Unicode full name to ANSI.WideCharToMultiByte( CP_ACP, 0, ui->usri2_full_name, -1,
dest, 256, NULL, NULL );return (TRUE);
}
哪位高人来翻译下。每一步是什么意思。有什么用。别只翻译//外的英文。
#include <lm.h>
#include <stdio.h>BOOL GetFullName( char *UserName, char *Domain, char *dest )
{
WCHAR wszUserName[UNLEN+1]; // Unicode user name
WCHAR wszDomain[256];
LPBYTE ComputerName;struct _SERVER_INFO_100 *si100; // Server structure
struct _USER_INFO_2 *ui; // User structure// Convert ANSI user name and domain to UnicodeMultiByteToWideChar( CP_ACP, 0, UserName,
strlen(UserName)+1, wszUserName,
sizeof(wszUserName)/sizeof(wszUserName[0]) );
MultiByteToWideChar( CP_ACP, 0, Domain,
strlen(Domain)+1, wszDomain, sizeof(wszDomain)/sizeof(wszDomain[0]) );// Get the computer name of a DC for the domain.NetGetDCName( NULL, wszDomain, &ComputerName );// Look up the user on the DC.if( NetUserGetInfo( (LPWSTR) ComputerName,
(LPWSTR) &wszUserName, 2, (LPBYTE *) &ui ) )
{
printf( "Error getting user information.\n" );
return( FALSE );
}// Convert the Unicode full name to ANSI.WideCharToMultiByte( CP_ACP, 0, ui->usri2_full_name, -1,
dest, 256, NULL, NULL );return (TRUE);
}
哪位高人来翻译下。每一步是什么意思。有什么用。别只翻译//外的英文。
NetGetDCName
NetUserGetInfo
需要提供UNICODE字符串参数,而本程序显然是采用ANSI编码,
因此,在调用上述函数时,需要将字符串参数转换为UNICODE
在调用完成后,ui->usri2_full_name也是UNICODE字符串,需要转换为ANSI编码存放到缓存区指针dest
闲着也是闲着 从不懂到懂 都有个过程 我也不是程序员出生。所以想多看点这方面的东西。问题结了。谢谢你的指导
http://topic.csdn.net/u/20100326/13/2041EC86-F870-4810-A8A3-471FE4D77C91.html