![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
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-модуле ?