Здравствуйте, такая вот проблема. Есть код:
hr = pADsys->get_UserName(&bstr);
if (hr!=S_OK)
{
string error= format_error(hr);
LPSTR error1 = const_cast<char *>(error.c_str());
PutInfotoFileLog(error1,"getDomainUserSAMAccountName:get_UserName",4);
return ConvertStdStringToAnsiBSTR(error1);
}//получаем полное имя пользователя в домене
IADs *pUsr=NULL; //контейнер
USES_CONVERSION; //Макросы преобразования
string strDesc = static_cast<CHAR*>(CW2A(bstr));//
string LDAP="LDAP://"; //
string path = LDAP + strDesc;
wstring wstr( path.begin(), path.end() ); //
LPCTSTR path2 = W2CT( wstr.c_str( ) ); //формирование корректного пути для создания объекта из AD и приведение типа std::string к LPCTSTR
hr = ADsGetObject( path2, IID_IADs,(void**)&pUsr);
Все отрабатывает хорошо, пока в пути не встретятся русские символы, допустим путь будет
LDAP://CN=Юрий Петров,CN=ххххх,DC=ххх,DC=хх
Здесь вылетает ошибка, что объект не найден на сервере. Я думаю, проблема в кодировке запроса, но это всего лишь предположение.
Прошу помощи.