0
Я пишу DLL для взаимодействия с Game Maker. (Game Maker имеет дело только в Double
с.)FreePascal: бесплатный указатель на класс
Вот функция:
function CreateBitmap(W, H: Double): Double;
var
TBM: TBitmap;
begin
TBM := TBitmap.Create(Floor(W), Floor(H));
CreateBitmap := Double(Integer(@TBM));
end;
Так что, когда я получаю загнуть:
function DestroyBitmap(Handle: Double);
begin
<How do I free it?>
end;
Как освободить этот двойник? Я пытался делать
function DestroyBitmap(Handle: Double);
var
Blittable: IBlittable;
begin
Blittable := Pointer(Floor(Handle))^
Blittable.Free;
end;
Но поскольку тип указателя не может быть определена, Blittable
(IBlittable
) не может быть установлен в "untyped"
.
Как освободить этот указатель без утечки памяти?
Отлично! Спасибо. –