IPB
ЛогинПароль:

> Внимание!

1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным. В описании темы указываем язык!!!

> Арифметика указателей, АДА
TarasBer
сообщение 28.02.2011 15:35
Сообщение #1


Злостный любитель
*****

Группа: Пользователи
Сообщений: 1 755
Пол: Мужской

Репутация: -  62  +


Я не понял, как именно надо использовать пакет System.Storage_Elements
Итак, задача такая, у меня есть тип

   type TColor is new Interfaces.Unsigned_32;
   type AColor is access all TColor;

   type TBitmap is new Controlled with record
      Handle	: HBITMAP;
      DC	: HDC;
      Mem	: aliased AColor; -- или удобнее aliased PVOID?
      SizeX, SizeY, Depth	: integer;
   end record;


У него есть метод:

   function Get_Pixel(B: TBitmap; X, Y: integer) return AColor;
   -- возвращает указатель на пиксел с данными координатами
   pragma Inline(Get_Pixel);

   function Get_Pixel(B: TBitmap; X, Y: integer) return AColor is
   begin
      Assert((X >= 0) and (X < B.SizeX) and (Y >= 0) and (Y < B.SizeY));
      return B.Mem + X + Y * B.SizeX;
   end;



Последняя функция не компилируется. Что надо сделать, чтобы она скомпилировалась?
Кстати, здесь мне очень важна скорость, с точностью до лишних тактов и копирований чисел туда-сюда.


--------------------
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия 26.07.2025 6:06
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"