※C++でADOと使用してDBアクセス
ここで、DBに接続する為のCreateInstanceは行っているが、
Releaseを行っていませんでした
この際、57000回程度の動作の後に落ちます
勿論、修正すべき点は判ったのですが、これで落ちる理由
(CreateInstanceの限界個数 等)の裏付けが、見当たりま
せん
事由を説明・証明出来る裏付け資料は無いでしょうか?
搭載メモリではなく、ハンドルが不足したのだと思います。
ハンドルの個数には上限があって、その個数の上限はOSとregistryの設定で決まります。
詳細は下記URLが詳しいです
http://technet.microsoft.com/ja-jp/windows/ee787049.aspx
同様の手順で、DBへ接続する度にハンドルがどれだけ消費されるかを調べれば、57000回程度で落ちる理由がはっきりすると思います。
あと、プログラム側で、きちんとエラーチェックする事をおすすめします。CreateInstance()の失敗時に、GetLastError() 等のAPIでエラーコードを調べれば、詳細な原因が判るはずです。
Releaseを 行っていなかったということは オブジェクト ポインタへの参照を解放していなかったことになります。
つまり、メモリをどんどん消費しまくっていたということですね。
で、そのうち CreateInstanceを行っても メモリを 取得できなくなってしまうため エラーとなるのでしょう。
メモリ使用量の推移を確認してみてください。
なお 限界は 搭載している使用可能なメモリによって 変わってくるものと思われます。
http://msdn.microsoft.com/ja-jp/library/9e31say1%28VS.80%29.aspx