![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
можно ли преобразовать String в LPWSTR? [D6, D7, Win2k, WinXP]
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 я не разобрался, подскажите пожалуйста