- 締切済み
例外発生(アクセス違反)
こんにちは。 VB6で開発した自作アプリを実行すると アプリケーション例外が発生します。 ワトソンログを見ますとc0000005(アクセス違反)となっています。 ただ、コンパイルしなおしたEXEで実行すると問題なくできます。 (プログラム等は一切変更しておりません。) 例外に関しましても発生する場合と、しない場合があり、 頻度も3割くらいです。。。 確証はないのですが、別のパソコン(OS)でコンパイルしたEXE を実行すると必ず例外発生しているような。。。 (複数機能があるのですが、特定のもののみ例外発生します) こういう場合、プログラムに問題ありと考えるべきでしょうか???
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- noah7150
- ベストアンサー率46% (116/251)
下記URLで参照する限りではどうやらMSのバグのようですね DLLのバージョンが違うと落ちる率が高そうです。 複数のPCがあるようですが全てUpdateはされているのでしょうか? Update対象外のものにもありそうな気もするが・・・ 開発マシンを最新にして再度インストーラーを作成して全端末に再インストールしてDllをUPした方がいいかもね。 どの時に参照されたDLLのバージョンも全端末のバージョンをチェックした方が良いかも http://support.microsoft.com/search/default.aspx?mode=r&query=c0000005+%E3%82%A2%E3%82%AF%E3%82%BB%E3%82%B9%E9%81%95%E5%8F%8D&spid=global&catalog=LCID%3D1041&1041comm=1&res=20 http://oshiete1.goo.ne.jp/qa1514405.html
お礼
返事が遅くなりまして申し訳ございません。。。 その後も下記のようなトラブルに見舞われてしまい。。。 (activex exeのVSIでの登録につまずいていました。。。) 結論から申しますと、 本件の場合ObjectLibraryの違いが原因でした。。 お騒がせしました。。。 インストーラを作成してて、 excel*.olbを参照しているのに気付き 「SaveAs」と「excel」「olb」で検索したら 下記【ご参照】(1)に当たりました。。。 環境の問題で確証は得られてませんが、(すみません) とりあえず、下記環境A側でインストーラを作成し、実行する分には ABどちらも動作しているので((2)で生成したものを(4)実行) ひとまず閉めさせて頂きます。 noah7150様大変ありがとうございました。。 ■環境A【Win2000 Excel2000】 (1)コンパイル(EXE作成) (2)VSIでインストーラ作成 (3)インストール ■環境B【Win2003 Excel2002】 (4)インストール 【ご参照】 (1)http://questionbox.jp.msn.com/qa3597350.html ---------------------------------------------------------- ■抜粋■ 現在、参照設定しているエクセルオブジェクトはどのバージョンでしょうか? どうも下位互換はうまくないらしく、当方では常時2000のバージョンを参照させています。(EXCEL9.OLB)これで2003、2007に対応しています。 試しにやってみてはいかがでしょう? ちなみに、ご存知かどうか分かりませんが「OLB」ファイルはセットアップに含めたりして配布するとライセンス規約に反しますので気をつけてください。 ----------------------------------------------------------
補足
noah7150様早速のご回答ありがとうございました。。。 その後、当方で下記の要領で落ちる場所を特定してみました。 環境A OS:Win2000 Office:2000 VB6.0 環境B OS:Win2003 Office:2003 VB6.0 環境Bにてくさそうな箇所にログを埋め込みコンパイル後 環境Aにて実行してみました。 すると、本アプリはエクセルで帳票を生成しているのですが、 エクセルファイルを「SaveAs」関数で保存している箇所で 落ちていました。。。 noah7150様のおっしゃるように一度インストーラを作成して 実行してみようと思います。。。 (実はまだ本件の調査でインストーラまでできておりませんでした。。。) >開発マシンを最新にして再度インストーラーを作成して また結果をご報告致します。