Модераторы: feodorv
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> NetUserEnum - непонятки какие-то.... параметры функции 
:(
    Опции темы
polinin
Дата 20.4.2007, 15:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 30.3.2007

Репутация: нет
Всего: нет



не пойму почему не работает такой код:
Код

........................................................
char name[32];
lstrcpy(name,"\\\\server");
WCHAR srvName[32];
MultiByteToWideChar(CP_ACP,0,name,-1,srvName,sizeof(srvName));
NetUserEnum((LPWSTR)srvName,...
........................................................
 

но если выполнить так:
Код

........................................................
WCHAR srvName[32];
lstrcpyW(srvName,L"\\\\server");
NetUserEnum((LPWSTR)srvName,...
........................................................

то всё впорядке. в первом случае NetUserEnum сразу возвращает ноль, во втором считывает иправно.
Вобщем надо char-имя сконвертить так, чтобы функция срабатывала. Как правильно сделать?

PM MAIL   Вверх
Pulse69
Дата 21.4.2007, 12:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 138
Регистрация: 28.4.2006
Где: Хабаровск

Репутация: нет
Всего: 10



Есть подозрение, что MultyByteToWideChar проваливается.

Код

WCHAR srvName[32];
MultiByteToWideChar(CP_ACP,0,name,-1,srvName,sizeof(srvName));


Про последний параметр сказано:

Цитата

Specifies the size, in wide characters, of the buffer pointed to by the lpWideCharStr parameter.


sizeof( srvName ) вернёт 32*sizeof( WCHAR ) = 64.

Т.е. функция считает, что ей передали массив WCHAR[64].

Попробуйте написать так.
Код

WCHAR srvName[32];
MultiByteToWideChar( CP_ACP, 0, name, -1, srvName, sizeof( srvName ) / sizeof( srvName[0] )  );


--------------------
Ctrl+Alt+Reset 
PM MAIL   Вверх
polinin
Дата 23.4.2007, 14:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 30.3.2007

Репутация: нет
Всего: нет



Цитата(Pulse69 @  21.4.2007,  12:29 Найти цитируемый пост)
Попробуйте написать так.код C++1:2:WCHAR srvName[32];MultiByteToWideChar( CP_ACP, 0, name, -1, srvName, sizeof( srvName ) / sizeof( srvName[0] )  );


Утром сегодня всё заработало и с "моим" вариантом. Ваше предложение тоже работает.  smile 
Спасибо.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Сети | Следующая тема »


 




[ Время генерации скрипта: 0.0637 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.