Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

можно ли преобразовать String в LPWSTR? [D6, D7, Win2k, WinXP]


Страницы:   1 2

Delta ©   (2004-01-16 14:02:00) 

если нетрудно, то пожалуйста дайте пример


Игорь Шевченко   (2004-01-19 11:44:00) [1]

BiN ©   (19.01.04 11:35)

я именно массив и имел в виду. Впрочем, это уже частности, разумеется, но говорить об идеологии я бы остерегся :)


BiN   (2004-01-19 11:35:00) [2]

Игорь Шевченко ©   (19.01.04 10:54) [21]
????????? Зачем ????????


... или же придется заводить массив of widechar, что по моему сугубо личному мнению все же не столь эффективно, как приведение типов - поправьте меня, если я не прав.


Игорь Шевченко   (2004-01-19 10:54:00) [3]

BiN ©   (18.01.04 18:53)


> для каждого параметра нужно писать код по выделению и освобождению
> памяти


????????? Зачем ????????


jack128   (2004-01-18 22:11:00) [4]

Удалено модератором
Примечание: Offtopic


BiN   (2004-01-18 18:53:00) [5]

nikkie ©   (16.01.04 23:59) [18]
абсолютно согласен

Игорь Шевченко ©   (16.01.04 18:07) [17]

для каждого параметра нужно писать код по выделению и освобождению памяти, хотя все можно реализовать с помощью приведения типов - ведь в данную функцию предаются константы.


nikkie   (2004-01-16 23:59:00) [6]

грубейшая ошибка в том, что
PWideChar(WideString(S))
вынесено в отдельную функцию.


Игорь Шевченко   (2004-01-16 18:07:00) [7]

BiN ©   (16.01.04 17:53)


> StringToWideChar - в данном случае идеологически неверно.

Можно узнать, почему ?


MScorp   (2004-01-16 18:07:00) [8]

Спасибо, еще раз все проверю, наверное что-то перепутал


BiN   (2004-01-16 17:53:00) [9]

StringToWideChar - в данном случае идеологически неверно.


Delta   (2004-01-16 17:39:00) [10]

Да, пробовал... в том то и дело, что имя он читает "вроде" правильно, т.к. если неизвестное имя - другая ошибка,
а пароль нет... пароль и имя, правильные, заведомо, проверял...
ты знаешь как использовать StringToWideChar?
может это быдет работать?


BiN   (2004-01-16 17:36:00) [11]

а попробуй напрямую написать

Er:=NetUserChangePassword(Pwidechar(widestring(Domain)),Pwidechar(widestring(User)),Pwidechar(widestring(Old)),Pwidechar (widestring(New)));

и обязательно отладчиком проверь входные значения. что-то мне не верится, что это все не работает. Пароль-то ты правильный указываешь?


Delta   (2004-01-16 17:30:00) [12]

Действительно, не передал,
вроде писал...
функция выдает в первом случае BadPassword, т.е.
сама функция NetUserChangePassowrd возвращает 86,
во втором случае - 0


BiN   (2004-01-16 17:27:00) [13]

пока ты не сказал какую выдает ошибку (в твоем случае Er), говорить о чем-то бессмысленно.


Delta   (2004-01-16 17:20:00) [14]

теоретически есть....
это массив
дело не в этом, если подставить значения без этих переменных,
если параметр строки - String - не работает :(


BiN   (2004-01-16 17:16:00) [15]

ShowMessage(ChangePassword('MAX',nusers[1],npassword[1],'2')); - Не работает

&*%&^$)P%$^%$^**^%!!!!!

что за nusers[1],npassword[1]
сомневаюсь, что у тебя есть юзер с именем и паролем длиной в один символ


Delta   (2004-01-16 17:08:00) [16]

function TForm1.ChangePassword(Domain,User,Old,New:String):String;
var c:String;
    Er:Integer;
begin
c:='';
Er:=NetUserChangePassword(StrToPw(Domain),StrToPw(User),StrToPw(Old),StrToPw(New));
case Er of
  0:c:='Successfully';
  ERROR_ACCESS_DENIED:c:='Access denied';
  86:c:='Bad password';
  2221:c:='Unknown username';
  1351:c:='Domain not found';
  else c:='Error '+IntToStr(Er);
end;
Result:=c;
end;

function TForm1.StrToPw(Str:String):PWideChar;
var l,l2:LPWSTR;
begin
Result:=Pwidechar(widestring(Str));
end;

ShowMessage(ChangePassword('MAX',nusers[1],npassword[1],'2')); - Не работает

ShowMessage(IntToStr(NetUserChangePassword('Max','Administrator','1','2'))); - работает


BiN   (2004-01-16 16:59:00) [17]

что возвращает функция, какую ошибку.


Delta   (2004-01-16 16:46:00) [18]

функция NetUserChangePassword,
параметры я ей передаю (4 параметра, все LPWSTR),
если передаю просто в коде
написанное 'password' , к примеру - работает,
если PWideChar(WideString(pswd)) - нет...
что интересно, что имя пользователя передается...
поэтому я и хотел попросить пример StringToWideChar, т.к.
не понял что и куда там писать.


BiN   (2004-01-16 16:38:00) [19]

что за функция?
если этот параметр принимаетданные, то, конечно, используй StringToWideChar, в противном случае должна подойти [2]


Delta   (2004-01-16 16:23:00) [20]

извините, что не в той теме, я перепутал нечаяно
функция, к сожалению не принимает PWideChar(WideString(S));
а со StringToWideChar я не разобрался, подскажите пожалуйста


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо