Консультация № 15969
13.01.2005, 18:50
0.00 руб.
0 1 1
Народ, подскажите, что за хрень в Delphi со строками, в блоке asm не то что-то происходит:
1) Winexec и вообще всё равно какая функция.
const/var
s:string=‘notepad.exe‘+#0;
......
asm
push 1 // к примеру, visible
lea eax,s[1]
push eax
call Winexec
end;
В дебаггере вместо строки Х@%@Я!!!
Я пробовал и push s[1] и много чего, что тут не так?
Подозреваю, что что-то в духе p=@s[1] lea eax,p push eax
Просвятите pls, а то заколебался уже!!!

Обсуждение

давно
Посетитель
1036
256
14.01.2005, 03:44
общий
это ответ
Здравствуйте, John Freeman!
var s:string - это динамическое обявление т.е. по сути в s хранится 4 байта ссылки на строку в памяти
поэтому lea eax,s[1] тебе выдвёт адрес на первый байт а не сам байт и => в дебаггере вместо строки Х@%@Я!!!
Форма ответа