Форум: "Начинающим";
Текущий архив: 2017.11.12;
Скачать: [xml.tar.bz2];
ВнизКорректно ли объявление аргумента как var Param: PByte? Найти похожие ветки
← →
Арлекино © (2015-12-08 05:34) [0]Есть внешняя DLL, написанная на C++
Есть некая функция, один из параметров которой BYTE* &temp
Как нужно объявить переменную при вызове из Delphi?
temp: PByte - получаю Access Violation
var temp: PByte - срабатывает корректно, но кошерна ли такое объявление? возврат на указатель? ведь указатель и есть возврат.
Можно оставить декларацию без var и делать GetMem для переменной, но это ИМХО вообще изврат. Ведь так?
← →
icWasya © (2015-12-08 09:24) [1]Объявление корректно. А далее надо читать доку по этой DLL-ке.
И если она возвращает указатель на какой-нибудь массив, не вздумайте делать FreeMem !
← →
Игорь Шевченко © (2015-12-08 12:25) [2]
> BYTE* &temp
var temp: PBYTE;
← →
Rouse_ © (2015-12-08 19:05) [3]Это либо var tmp: PByte, либо tmp: PPByte (tmp: ^PByte)
← →
Юрий Зотов © (2015-12-09 15:10) [4]Арлекино © (08.12.15 05:34)
>var temp: PByte
- кошерна ли такое объявление?
Почему нет?var temp: byte
- кошерно? Вполне.
А почему тогда не кошерноvar temp: PByte
?
Забудьте о том, что указатель - это какая-то особенная переменная. Никакая не особенная, а самая обыкновенная. Точно такая же, как, например, cardinal - беззнаковое целое число. И содержит указатель точно такое же беззнаковое целое число. Только число это надо рассматривать, как адрес - вот и вся разница.var temp: byte
- передали одно ЧИСЛО, получили другое ЧИСЛО.var temp: PByte
- передали один АДРЕС, получили другой АДРЕС.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2017.11.12;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.002 c