DOBON.NETプログラミング掲示板過去ログ
画面に描画しようとするとメモリーエラーが起こる
題名: 画面に描画しようとするとメモリーエラーが起こる
著者: 謎
日時: 2003/09/28 14:36:27
ID: 755
この記事の返信元:
(なし)
この記事への返信:
[759]
Re[1]: 画面に描画しようとするとメモリーエラーが起こる
よねKEN
2003/09/28 23:00:57
ツリーを表示
分類:[.NET]
Win32.APIとGDI+を使って画面に描画しようとしているのですが、「メモリーが不足しています」と表示されます。
タスクマネージャで確認したところそんなにメモリーを使っていませんでした。
何処が間違っているのでしょうか?
[DllImport("Gdi32.dll",EntryPoint="CreateDC")]
private static extern IntPtr CreateDC(string Display,string c,object b,object a);
[DllImport("Gdi32.dll",EntryPoint="DeleteDC")]
private static extern bool DeleteDC(IntPtr handle);
private void StartView(){
int i = 0;
a = CreateDC("DISPLAY","DISPLAY",null,null);
Graphics g = System.Drawing.Graphics.FromHwnd(a);//ここでエラー
(中略)
g.Dispose();
}
private void DeleteView(){DeleteDC(a);}
題名: Re[1]: 画面に描画しようとするとメモリーエラーが起こる
著者: よねKEN
URL:
http://www5b.biglobe.ne.jp/~yone-ken/
日時: 2003/09/28 23:00:57
ID: 759
この記事の返信元:
[755]
画面に描画しようとするとメモリーエラーが起こる
謎
2003/09/28 14:36:27
この記事への返信:
(なし)
ツリーを表示
> Win32.APIとGDI+を使って画面に描画しようとしているのですが、「メモリーが不足しています」と表示されます。
ここで表示されているメモリー不足はリソース不足の意味ではないでしょうか?
だとすれば後始末が正しく行われていないのだと思います。
提示のコードのクラスのインスタンスで
StartViewメソッドとDeleteViewメソッドを必ず対で使用していますか?
> a = CreateDC("DISPLAY","DISPLAY",null,null);
> Graphics g = System.Drawing.Graphics.FromHwnd(a);//ここでエラー
CreateDCで得ているのはDCですから、
Graphics.FromHDCを使わないといけないと思いますが、
FromHwndになっていますから、これだと不正なハンドルを指定しているのでは?
DOBON.NET
|
プログラミング道
|
プログラミング掲示板
Win32.APIとGDI+を使って画面に描画しようとしているのですが、「メモリーが不足しています」と表示されます。
タスクマネージャで確認したところそんなにメモリーを使っていませんでした。
何処が間違っているのでしょうか?
[DllImport("Gdi32.dll",EntryPoint="CreateDC")]
private static extern IntPtr CreateDC(string Display,string c,object b,object a);
[DllImport("Gdi32.dll",EntryPoint="DeleteDC")]
private static extern bool DeleteDC(IntPtr handle);
private void StartView(){
int i = 0;
a = CreateDC("DISPLAY","DISPLAY",null,null);
Graphics g = System.Drawing.Graphics.FromHwnd(a);//ここでエラー
(中略)
g.Dispose();
}
private void DeleteView(){DeleteDC(a);}