コンパイルしたexeを実行するとアプリケーションが発生する

解決


Y.Kawakami  2006-02-05 03:08:47  No: 130099

本掲示板の「エクスプローラのコピー、切り取りを判定したい。」のレスにある「FolderItemVerbを使う方法」で、エクスプローラでコピーしたファイルを所定のフォルダに貼り付ける処理をしました。

デバッグモードでは正しく実行できたのですが、コンパイルしてExeから実行するとアプリケーションエラーが発生します。

MsgBoxを付けまくってエラーの発生場所を調査したところ、FolderItemVerbを記述したプロシージャから帰ってくる時(End Sub実行後、Callの次の行までの間)でエラーが発生しています。

どなたか対処方法をご教示いただければ幸甚です。
尚、VB6を使用しています。


通ってみた  2006-02-06 06:38:53  No: 130100

>デバッグモードでは正しく実行できたのですが、
ちなみに、完全コンパイルは通っていますか?


ガッ  2006-02-06 10:32:14  No: 130101

注意点
・TimerコントロールはIDE上の実行とEXE単体の実行では動きが違う

例)
Option Explicit
Private WithEvents tmr As Timer
Private Sub Form_Load()
    Set tmr = Me.Controls.Add("VB.Timer", "tmr")
    Me.Show
    DoEvents
    tmr.Interval = 100
    tmr.Enabled = True
    MsgBox "メッセージボックスとか表示してみる"
End Sub
Private Sub tmr_Timer()
    Me.Caption = Me.Caption & ">"
End Sub


Y.Kawakami  2006-02-06 18:34:52  No: 130102

アドバイス有難うございました。

完全コンパイルでもうまく動作します。
また、プロシージャの最後に下記のダミー行を入れましたが、
うまく動作しません。

    Dim TM
    TM = Timer
    Do While Timer - TM < 1
    Loop

よろしくお願い致します。


ガッ  2006-02-06 20:03:47  No: 130103

そうそう。
肝心の、エラーの内容は何ですか?
何も例外の表示がなく落ちてしまうのなら、再現可能なコードがあればやるきが起きるかもしれません。


Y.Kawakami  2006-02-07 05:42:04  No: 130104

レス有難うございました。

Dr.Watosonのログから拾ってみました。
この下にも色々と記載されていましたが、他に入用な情報が
有ればご指示願います。よろしくお願い致します。

アプリケーション例外が発生しました:
        アプリケーション:  (pid=1288)
        発生時間:  2006/02/06 @ 20:05:22.773
        例外番号:  c0000005 (アクセス違反)

*----> システム情報 <----*
        プロセッサの数: 1
        プロセッサの種類: x86 Family 6 Model 13 Stepping 8
        Windows 2000 Version: 5.0
        現在のビルド: 2195
        Service Pack: 4
        現在のタイプ: Uniprocessor Free


Y.Kawakami  2006-02-08 07:09:12  No: 130105

何故か解りませんが、突然ちゃんと動くようになりました。

不気味では有りますが、暫く様子を見ることにします。

お騒がせしました。
また、レスを戴いた方に改めて御礼申し上げます。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加