Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2017.11.12;
Скачать: CL | DM;

Вниз

Корректно ли объявление аргумента как 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;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.006 c
6-1284011253
Alexandro
2010-09-09 09:47
2017.11.12
Как получить доступ к элементу в TWebBrowser?


15-1464643802
Юрий
2016-05-31 00:30
2017.11.12
С днем рождения ! 31 мая 2016 вторник


15-1465507801
Юрий
2016-06-10 00:30
2017.11.12
С днем рождения ! 10 июня 2016 пятница


2-1450086211
TheEd
2015-12-14 12:43
2017.11.12
как отловить необходимость погасить кнопку в ячейке StringGrid


3-1315470203
miau
2011-09-08 12:23
2017.11.12
Блокировка в SQL