- PR -

C++/CLIでBitmapで読み込んだビットマップファイルを開放したい

1
投稿者投稿内容
maru
ぬし
会議室デビュー日: 2003/01/27
投稿数: 412
投稿日時: 2007-06-19 15:49
こんにちは。お世話になってます。

現在、VC++.NET 2005 C++/CLI でアプリケーションの開発をしています。
ビットマップファイルを読み込んで、クリップボードへコピーし、読み込んだビット
マップファイルを削除したいのですが、Bimapオブジェクトがファイルをロックしたまま
となっていて、削除できません。

ネットで調べると、VB.NETやC#の場合、Bitmap.Dispose() をすればいいというような
記述がありますが、C++/CLIの場合、Dispose() メソッドはないのです。
Disposeの代わりに、 nullptr を代入すればいいというような記述もありますが、実際
nullptr を代入しても ファイルのロックがすぐに解除されているようではありません。

C++/CLIの場合はどのようにすればいいのでしょうか?
一郎
ぬし
会議室デビュー日: 2002/10/11
投稿数: 1081
投稿日時: 2007-06-19 16:16
C#などで言うIDisposable.Dispose()はC++/CLIではデストラクタと呼ばれます。
http://vene.wankuma.com/ecma372/19_6_13_class_member.aspx#SS.19.13

自動変数であればスコープを外れた段階でデストラクタが呼ばれます。
newしたものに関してはdeleteを実行してください。デストラクタが呼ばれます。
maru
ぬし
会議室デビュー日: 2003/01/27
投稿数: 412
投稿日時: 2007-06-19 20:06
こんにちは。

結局、BitmapをFilestreamでロードし、終えたらFilestreamをCloseすることで対応しました。
1

スキルアップ/キャリアアップ(JOB@IT)