Game Maker とのインターフェース用の DLL を書いています。(ゲームメーカーのみの取り扱いDouble
です。)
ここに関数があります:
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;
この Double を解放するにはどうすればよいですか? やってみた
function DestroyBitmap(Handle: Double);
var
Blittable: IBlittable;
begin
Blittable := Pointer(Floor(Handle))^
Blittable.Free;
end;
ただし、ポインターの型を判別できないため、Blittable
( IBlittable
) を に設定することはできません"untyped"
。
メモリをリークせずにこのポインタを解放するにはどうすればよいですか?