Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

access violation при закрытии приложения (DLL)


fs ©   (2009-05-26 13:42:00) 

В приложении используется процедура которая закрашивает форму в виде шахматной доски. Поместил ее в dll тут при закрытии стало появлятся access vialotion. пробывал 2 подхода (динамическая загрузка и статическая) и в обоих случаях ошибка появляется. В чем может быть дело?


sniknik   (2009-05-26 13:53:00) [1]

> uses Windows, Classes, Graphics;
> procedure Chessboard(ACanvas: TCanvas; AWidth: Integer; AHeight: Integer);
?
создай новую dll (модуль) а дельфях и внимательно почитай дисклаймер который оно туда вставляет.


fs   (2009-05-26 13:46:00) [2]

по условию курсача


fs   (2009-05-26 13:43:00) [3]

Вот код dll


library Chessboard_;

uses Windows, Classes, Graphics;

{$R *.res}

procedure Chessboard(ACanvas: TCanvas; AWidth: Integer; AHeight: Integer);
const
 Colors: array [Boolean] of TColor = (clWhite, clGray);
 default_tile_Height = 13;
 default_tile_Width  = 13;
var
 OddY, TileX, TileY, TilesHorz,
   TilesVert, I, J: Integer;
 R: TRect;
begin
 TilesHorz := AWidth  div default_tile_Width;
 TilesVert := AHeight div default_tile_Height;
 TileY := 0;
 for J := 0 to TilesVert do begin
   TileX := 0;
   OddY  := J and $1;
   for I := 0 to TilesHorz do
   begin
     R := Rect(TileX, TileY, TileX + default_tile_Width,
       TileY + default_tile_Height);
     ACanvas.Brush.Color := Colors[I and $1 = OddY];
     ACanvas.FillRect(R);
     Inc(TileX, default_tile_Width);
   end;
   Inc(TileY, default_tile_Height);
 end;
end;

exports
 Chessboard;

begin
end.


Сергей М.   (2009-05-26 13:43:00) [4]


> Поместил ее в dll


Зачем ?
Чем плоха жизнь этой самой процедуры прямо в exe-модуле ?


Наверх

Титульная страница Поиск, карта сайта Написать письмо