Страница 1 из 1
PAnsiChar
Добавлено: 29 май 2009, 11:28
Oleg_Rus
граждане форумчане, объясните мне как в программе сделать вызов другого приложения с помощью ShellApi или другой подобной ф-ии.
Проблема в следующем: необходимо сделать запуск другого приложения программно. Моя делфа матюгается, что Char и PAnsiChar несовместимы.
Re: PAnsiChar
Добавлено: 29 май 2009, 13:02
Duncon
[syntax=Delphi]
var
si: TStartupInfo;
pi: TProcessInformation;
begin
FillChar(si, SizeOf(si), 0);
si.cb := SizeOf(si);
CreateProcess(nil, 'my.exe', nil, nil, FALSE, CREATE_NEW_CONSOLE, nil, nil, si, pi);
[/syntax]
.msi немного по другому запускаются..
Re: PAnsiChar
Добавлено: 02 июн 2009, 03:44
Oleg_Rus
CreateProcess(nil, 'my.exe', nil, nil, FALSE, CREATE_NEW_CONSOLE, nil, nil, si, pi);
у меня загвоздка именно в 'my.exe'. суть: пользователь может сам ввести запуск приложения и путь до него.
Re: PAnsiChar
Добавлено: 02 июн 2009, 09:25
Duncon
Так приведи к типу..
[syntax=Delphi]
PChar('my.exe');
PAnsiChar('my.exe');
[/syntax]
Re: PAnsiChar
Добавлено: 02 июн 2009, 13:08
Oleg_Rus

а рази так можна?! сорри, ни знал... )
Re: PAnsiChar
Добавлено: 02 июн 2009, 13:35
Naeel Maqsudov
В ObjectPascal тип String (фактически LASCII) является совместимым в PChar (фактически ASCIIZ). Т.е. он дополнен нулем в конце.
При тайпкасте используется указатель на первый символ строки (а перед первым символом, как известно есть еще и длина).
Re: PAnsiChar
Добавлено: 02 июн 2009, 18:06
Oleg_Rus
В ObjectPascal тип String (фактически LASCII) является совместимым в PChar (фактически ASCIIZ). Т.е. он дополнен нулем в конце.
Вопрос: У меня Delphi 7. Неужели ObjectPascal прародитель Delphi? :0
Re: PAnsiChar
Добавлено: 02 июн 2009, 19:21
Duncon
Погугли чтоли чють-чють...