мой рабочий компьютер - win10, и я использую vs2015, теперь я столкнулся со странной проблемой.Я могу получить имя NameSamCompatible по следующему исходному коду:
const int UNLEN = 100;
TCHAR Username[UNLEN + 1];
DWORD nULen = UNLEN;
GetUserNameEx(NameSamCompatible, Username, &nULen);
Имя пользователя будет "PROD \ wwu2", но я получу ошибку, если я выполню:
char trans_name[100];
ULONG ulSize = 100;
BYTE n = TranslateName(Username, NameSamCompatible, NameDnsDomain, trans_name, &ulSize);
затемЯ получаю код ошибки с помощью GetLastError ();это 1317 (пользователь не существует).но имя пользователя - это то, что я получил от GetUserNameEx, я ничего не менял.
весь исходный код:
#include "stdafx.h"
#include <Windows.h>
#include <sspi.h>
#include <secext.h>
#include <ntdsapi.h>
int main()
{
const int UNLEN = 100;
TCHAR Username[UNLEN + 1];
DWORD nULen = UNLEN;
GetUserNameEx(NameSamCompatible, Username, &nULen);
char trans_name[100];
ULONG ulSize = 100;
BYTE n = TranslateName(Username, NameSamCompatible, NameDnsDomain, trans_name, &ulSize);
int c = GetLastError();
return 0;
}