2011-02-03 6 views
0

私はC++とWinApi32のプロジェクトに参加しています。 3つのクラスがあり、それぞれが約150 行のコードです。私のメインウィンドウでビジュアルスタジオヒープエラーと思われる

は、コードの下に頻繁に実行されます。

wc.cbClsExtra=0; 
wc.cbWndExtra=0; 
wc.hbrBackground = CreateSolidBrush(BkColor); 
wc.hCursor = LoadCursor(NULL,IDC_HAND); 
wc.hIcon = NULL; 
wc.hInstance = hInstance; 
vertex_hInstance = hInstance; 
wc.lpfnWndProc = VertexProc; 
wc.lpszClassName = Vertex_Class; 
wc.lpszMenuName=NULL; 
wc.style = CS_HREDRAW|CS_VREDRAW; 
RegisterClass(&wc); 
hWnd = CreateWindow(Vertex_Class,L"",WS_CHILD|WS_BORDER,getx(),gety(),getw(),geth(),parent_HWND,NULL,hInstance,0); 

それは私が早期に定義したクラスの機能にあります。実行プログラム:エラーはありません、すべてが良いです。プログラムを閉じること:私はエラーを与える:Windowsが絵を見るために、ブレークポイントをトリガした: Visit Error

+2

私は画像がアラビア(またはそのようなもの)である画像 –

+0

を開くことができません –

+0

は、なぜそのコードが頻繁に実行されますか?一度だけクラスを登録する必要があります... –

答えて

1

あなたが示されているコードは、あなたが記述問題の原因を言うのに十分ではありません。

ただし、同じウィンドウクラスを複数回登録しないでください。

それはただ一つがする何か(私はその経験がない)ではないので、私は「頻繁に」、同じウィンドウクラスの登録の効果を知らないが、多分それはリソースをgobblingかもしれない、これは非常に有害な影響を及ぼします。

通常の解決方法は、ウィンドウクラスを最初に登録するか、そのクラスのウィンドウを作成する前に登録することです。

など。これを実現するためにシングルトンを使用することができます。

乾杯& HTH。、

関連する問題