Что-то я опять заплутал в трех соснах ...


Есть процедура (не моя)
Код: Выделить всё
Map
Proc1(*?) ! WinAPI
end
! Вызываем
MyStr String(255)
Code
Proc1(MyStr)
Message(MyStr)
с ужасом обнаружил что это как-то проходило компиляцию ... Почему ?
2. Непонятно, но получается что в Proc1 попадал адрес MyStr и в него вполне успешно записывалось значение.
Разве при передаче строки в процедуру с прототипом адреса происходит преобразование типов ?
Насколько я понимаю, правильный вызов должен быть Proc1(ADDRESS(MyStr)) ?
3. В какой-то момент это неявное преобразование типов перестало работать. Но в одно конкретной программе.
Точно такой же код в других программах работает ... Ничего не пойму, с чем это связано.

Кто-нибудь может ответить на любой из этих трех вопросов ?