Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2004.03.28;
Скачать: [xml.tar.bz2];

Вниз

можно ли преобразовать String в LPWSTR?   Найти похожие ветки 

 
Delta   (2004-01-16 14:02) [0]

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


 
_hunter_ ©   (2004-01-16 14:09) [1]

var
 l: LPWSTR;
 s: string;
begin
 s:="sss";
 l:=PWideChar(s);
end;


 
BiN ©   (2004-01-16 14:12) [2]

_hunter_ ©   (16.01.04 14:09) [1]
и получится лабуда...

надо
 PWideChar(WideString(S));


 
Игорь Шевченко ©   (2004-01-16 14:54) [3]

StringToWideChar


 
Delta   (2004-01-16 16:23) [4]

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


 
BiN ©   (2004-01-16 16:38) [5]

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


 
Delta   (2004-01-16 16:46) [6]

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


 
BiN ©   (2004-01-16 16:59) [7]

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


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

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 17:16) [9]

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

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

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


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

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


 
BiN ©   (2004-01-16 17:27) [11]

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


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

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


 
BiN ©   (2004-01-16 17:36) [13]

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

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

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


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

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


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

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


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

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


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

BiN ©   (16.01.04 17:53)


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

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


 
nikkie ©   (2004-01-16 23:59) [18]

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


 
BiN ©   (2004-01-18 18:53) [19]

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

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

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


 
jack128 ©   (2004-01-18 22:11) [20]

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


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

BiN ©   (18.01.04 18:53)


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


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


 
BiN ©   (2004-01-19 11:35) [22]

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


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


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

BiN ©   (19.01.04 11:35)

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



Страницы: 1 вся ветка

Форум: "WinAPI";
Текущий архив: 2004.03.28;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.49 MB
Время: 0.042 c
14-1078028474
SergP
2004-02-29 07:21
2004.03.28
MySQL. Нужно восстановить данные из дампа на лок. машине


4-1074520665
Romantik
2004-01-19 16:57
2004.03.28
Перехватывать запуск и закрытие программ.


14-1077350919
Igor_thief
2004-02-21 11:08
2004.03.28
Какой способ самый оптимальный?


6-1074594712
Petrovich
2004-01-20 13:31
2004.03.28
Как узнать имя юзера?


14-1077937811
Думкин
2004-02-28 06:10
2004.03.28
28 февраля.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский