Пытаюсь подключиться к сетевому диску через WNetAddConnection2, если имя пользователя на английском то все работает нормально, а если на русском то получаю ошибку с кодом 1326 "Вход в систему не произведен: имя пользователя или пароль не опознаны." Естественно пользователь существует и под его именем вход возможен через подключение сетевых дисков ручками. Почему программно не получается? Может в программе имя пользователя, передаваемое функции, должно быть в Unicode? Программка консольная и все параметры указываются через командную строку.
Здравствуйте, KSergey1, Вы писали:
KS>Пытаюсь подключиться к сетевому диску через WNetAddConnection2, если имя пользователя на английском то все работает нормально, а если на русском то получаю ошибку с кодом 1326 "Вход в систему не произведен: имя пользователя или пароль не опознаны." Естественно пользователь существует и под его именем вход возможен через подключение сетевых дисков ручками. Почему программно не получается? Может в программе имя пользователя, передаваемое функции, должно быть в Unicode? Программка консольная и все параметры указываются через командную строку.
Здравствуйте, KSergey1, Вы писали:
KS>Пытаюсь подключиться к сетевому диску через WNetAddConnection2, если имя пользователя на английском то все работает нормально, а если на русском то получаю ошибку с кодом 1326 "Вход в систему не произведен: имя пользователя или пароль не опознаны." Естественно пользователь существует и под его именем вход возможен через подключение сетевых дисков ручками. Почему программно не получается? Может в программе имя пользователя, передаваемое функции, должно быть в Unicode? Программка консольная и все параметры указываются через командную строку.
Очевидно, параметры пришли в кодировке OEM, а функция ожидает ANSI. Лечится только переходом на Unicode. Слегка поможет перекодировка через OemToChar[Buff], MultiByteToWideChar или iconv, но только до тех пор, пока в строке не окажется нечто, в какой-нибудь из кодировок не представимое.