![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Нуль-терминал в OLE-строку. [D7, Win95/98, WinXP]
tytus © (2004-01-11 00:00:00)Доброе время суток. для SHellFolder.SetNameOf нужно преобразовать PAnsiChar в PWideChar. И хотелось бы узнать, как установить размер PWideChar, как это делается для PAnsiChar:
Size:=MAX_PATH+1;
Path:=StrAlloc(Size);, где Path:PAnsiChar.
VMcL (2004-01-11 03:17:00) [1]>> tytus © (11.01.04 00:00)
Если нужно передать PWideChar в функцию, котрая не изменяет переданную строку, то можно так:
SomeFunc(PWideChar(WideString(SomeAnsiString)));
или
SomeFunc(PWideChar(WideString(SomePAnsiChar)));
Если же изменяет (то есть это выходной параметр), то как-то так:
var
ResStr: WideString;
// ...
SetLength(ResStr, MaxLenOfStr);
SomeFunc(PWideChar(ResStr));
tytus (2004-01-11 01:01:00) [2]Ок, а как мне указать размер Size в StringToWideChar? Наверное из-за этого у меня AccessViolation в:
Res:=ShellFolder.SetNameOf(Application.Handle,IDList,PPath,96,ID);
, где Res:HRESULT(что вообщето не мешает),
IDList,ID:PItemIDList;
Игорь Шевченко (2004-01-11 00:44:00) [3]StringToWideChar