![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Файл
Bast © (2007-08-22 15:51:00)Здравствуйте! Есть прога допустим 123.exe она должна себе копировать на Диск Ц в папку программ файлес, но если я воспользуюсь функциекй copy то надо указывать имя проги т.е. copy(123.exe, c:\....), а как быть если у прога уже 312.exe ?
Anatoly Podgoretsky (2007-08-23 15:10:00) [1]Кстати в коде нет проверки длины, это ты выдумал.
Anatoly Podgoretsky (2007-08-23 15:10:00) [2]
> wp2 © (23.08.07 11:55) [22]
Это не приведение, а именно функция, кроме того ты код не до конца дочитал.
Leonid Troyanovsky (2007-08-23 13:12:00) [3]
> wp2 © (23.08.07 11:35) [19]
> wp2 © (23.08.07 11:40) [20]
> wp2 © (23.08.07 11:52) [21]
> wp2 © (23.08.07 11:55) [22]
RTFM, RTFM & RTFM.
--
Regards, LVT.
wp2 (2007-08-23 11:55:00) [4]То я когда-то вроде отлаживал приведение типа PChar.
И что вы думаете я обнаружил, какой именно ассемблерный код?
А никакой! Там была проверка на длину строку (не нулевая ли), а потом return :-)
Вот вам и всё приведение типа... :-)
wp2 (2007-08-23 11:52:00) [5]Я вот только не вдуплил, что должна возвращать функция StrPCopy?
Вроде тоже возвращает строку...
тогда можно записать
varPC: PChar;
begin
New(PC);
CopyFile(StrPCopy(PC, Application.ExeName), 'c:\test.exe', true);
end;
тоже работает.
Вот только в примерах я нигде не видел, чтобы ее использовали как функцию.
wp2 (2007-08-23 11:40:00) [6]уточнение:
varPC: PChar;
begin
New(PC);
StrPCopy(PC, Application.ExeName);
CopyFile(PC, 'c:\test.exe', true);
end;
Проверено в Турбо Pascal 7.1 :-)
wp2 (2007-08-23 11:35:00) [7]>Какая функция переводит String в PAnsiChar? так понятнее?
Хм, а ведь есть такая функция, только не помню как называется. Счас поисчу.
Ага. вот оно. StrPCopy
varPC: PChar;
begin
StrPCopy(PC, Application.ExeName);
CopyFile(PC, 'c:\test.exe', true);
end;
вроде так.
Bast (2007-08-22 23:46:00) [8]
> В руках "умелого" программиста любая программа может стать
> хуже трояна...
:)))))))))))
DrPass (2007-08-22 23:18:00) [9]
> Bast (22.08.07 23:17) [16]
> Нет, это не троян
В руках "умелого" программиста любая программа может стать хуже трояна...
Bast (2007-08-22 23:17:00) [10]Нет, это не троян
Anatoly Podgoretsky (2007-08-22 19:16:00) [11]> Bast (22.08.2007 17:54:13) [13]
Теперь дрожите мужики, сами напросились.
grisme (2007-08-22 18:40:00) [12]ну троян ведь небось :)
Bast (2007-08-22 17:54:00) [13]Всем спасибо
Dib@zol (2007-08-22 17:22:00) [14]> [11] Bast (22.08.07 17:12)
ROFL +1
Объяснено же ж уже!!! PANSIChar()!!! Можно кстати просто PChar()!
Bast (2007-08-22 17:12:00) [15]Какая функция переводит String в PAnsiChar? так понятнее?
wp2 (2007-08-22 17:09:00) [16]Эх, нету на вас С++ там бы вообще погрязли...
wp2 (2007-08-22 17:09:00) [17]А разве можно просто так самого себя копировать без хакерских методов.
> [Error] Unit1.pas(28): Incompatible types: 'String' and 'PAnsiChar'
Бери словарь англо-русский (должен быть по-любому). И переводи.
"Несовместимые типы String и PAnsiChar"
Теперь головой думаем, что надо сделать чтобы они были совместимыми?
ПРАВИЛЬНО!
Привести к нужному типу.
CopyFile(PAnsiChar(Application.ExeName),'c:\test.exe',true);
Как будто раньше никогда не приходилось типы приводить....
Сергей М. (2007-08-22 16:53:00) [18]
> Bast (22.08.07 16:46) [7]
>
> Пытаюсь сделать вот так
> выдает ошибку
И ?
Твои-то действия каковы в этой ситуации ?
Кроме трындёжа в форуме ?
Спрасвку ты уже проштудировал ?
Что--то в ней не понял ?
Что ?
Bast (2007-08-22 16:46:00) [19]Пытаюсь сделать вот так:
CopyFile(Application.ExeName,'c:\test.exe',true);
Но выдает ошибку:
Build
[Error] Unit1.pas(28): Incompatible types: 'String' and 'PAnsiChar'
[Fatal Error] Project2.dpr(5): Could not compile used unit 'Unit1.pas'
Сергей М. (2007-08-22 16:26:00) [20]
> если 123.exe переименовать в 321.exe то она уже не скорируется
Абракадабра ..