Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Функция в DLL


Автор: InfMag 15.8.2005, 10:02
Люди, мне нужно загнать одну функцию на Delphi в C++Builder. Я зашел в DLL Wizard, но у меня так и не получилось ее туда загнать...
Вот функция (по работе с регионом):
Код

function CreateRgnFromBitmap(rgnBitmap: TBitmap): HRGN;
var
TransColor: TColor;
i, j: Integer;
i_width, i_height: Integer;
i_left, i_right: Integer;
rectRgn: HRGN;
begin
Result := 0;
// Запоминаю размеры окна
i_width := rgnBitmap.Width;
i_height := rgnBitmap.Height;
// Определяю прозрачный цвет
transColor := rgnBitmap.Canvas.Pixels[0, 0];
// Запускаю цикл перебора строк картинки 
// для определения области окна без фона 
for i := 0 to i_height - 1 do 
begin 
i_left := -1; 
// Запускаю цикл перебора столбцов картинки 
for j := 0 to i_width - 1 do 
begin 
if i_left < 0 then 
begin 
if rgnBitmap.Canvas.Pixels[j, i] <> transColor then
i_left := j;
end
else
if rgnBitmap.Canvas.Pixels[j, i] = transColor then
begin 
i_right := j; 
rectRgn := CreateRectRgn(i_left, i, i_right, i + 1); 
if Result = 0 then 
Result := rectRgn 
else 
begin 
CombineRgn(Result, Result, rectRgn, RGN_OR); 
DeleteObject(rectRgn); 
end;
i_left := -1;
end;
end; 
if i_left >= 0 then 
begin 
rectRgn := CreateRectRgn(i_left, i, i_width, i + 1); 
if Result = 0 then 
Result := rectRgn 
else 
begin 
CombineRgn(Result, Result, rectRgn, RGN_OR); 
DeleteObject(rectRgn); 
end; 
end;
end;
end;

Мне нужно, чтобы я спокойно потом обрашался к функции с DLL

Автор: _hunter 15.8.2005, 11:47
так а что именно не получилось? dll сваять?

Автор: Петрович 15.8.2005, 11:52
А в C++Builder'е есть тип TBitmap?

Автор: _hunter 15.8.2005, 11:59
есть. VCL они почти один в один перенесли ( не считая вариантов и сейфАррев )

Автор: InfMag 15.8.2005, 12:25
_hunter
Я вобще не понимаю ентой технологии, да если енто засуну в длл, то потом еще буду спрашивать как в си инклудить функцию... smile
Блин, очень тяжко, когда с длл не умеешь работать. Очень хочу научиться, но просто совершенно не из чего...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)