我正在编写一个 DLL 来与 Game Maker 交互。(游戏制造商仅以Double
s 交易。)
这是一个函数:
function CreateBitmap(W, H: Double): Double;
var
TBM: TBitmap;
begin
TBM := TBitmap.Create(Floor(W), Floor(H));
CreateBitmap := Double(Integer(@TBM));
end;
所以当我得到 Double 回来时:
function DestroyBitmap(Handle: Double);
begin
<How do I free it?>
end;
如何释放这个 Double?我试着做
function DestroyBitmap(Handle: Double);
var
Blittable: IBlittable;
begin
Blittable := Pointer(Floor(Handle))^
Blittable.Free;
end;
但是由于无法确定指针的类型,因此Blittable
( IBlittable
) 不能设置为"untyped"
。
如何在不泄漏内存的情况下释放此指针?