Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
2-1450677845
ВладОшин
2015-12-21 09:04
2017.11.12
подскажите обратную формулу


2-1450384249
Max
2015-12-17 23:30
2017.11.12
Сделать в stringgrid строки enabled.Афды


2-1450085380
gedevan
2015-12-14 12:29
2017.11.12
Как экспортировать или импортировать таблицу из базы Access


15-1467650458
Pavia
2016-07-04 19:40
2017.11.12
Баг с юникодом


2-1450208244
Alex4445
2015-12-15 22:37
2017.11.12
Синхронизация через SendMessage





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский