2017-01-13 8 views
0

私の顧客にとっては、Windows XPコンピュータ上で動作するビジュアルベーシックな6アプリケーションで変更を加えなければなりませんでした。Visual Basic 6アプリケーションの変更、exeクラッシュ

これは特別なことではなく、単にplcと通信し、ユーザーインターフェイスとして機能します。

私の変更は開発環境(IDE)で完全に機能しますが、私がexeを作成すると、いくつかのフォームを開いたり、いくつかのボタンを押すとクラッシュします。いくつかのものは動作し、いくつかのものはクラッシュします。

開発中のコンパイラは、フルコンパイルした後でもエラーを生じません!

私はコードを反復することによっていくつかの「バグ」を発見しました。これは本当にいくつかの変数を削除することです。 (既に存在していたのは+ プログラマブルエラーではありません)コンパイラはエラーを出さず、exeがクラッシュします。

クラッシュしたバグの例:

sub On form_load() 

    Some code 

Global_String_Variabel = "Something" 

    some code 

End sub 

をちょうどこの形でグローバル文字列変数を削除すると、それはもはやクラッシュしませんでした。

コードのこの平和がすでに存在していたので、それは奇妙だが、完全に罰金ではなく、開発

.exeファイルに誰かがこれが起こる可能性がなぜ任意のアイデアを持っていない作品?

+1

あなたの質問と対応するコードを含めて質問を編集してください。 – Filburt

+0

エラーメッセージは表示されません。画面は空白です。 –

+0

実行時にクラッシュを正しくコンパイルするプログラム自体は、それ自体まったく驚くべきことではありません。コンパイラは、実行時に発生する可能性があるすべてを予測することはできません。 – DaveInCaz

答えて

0

あなたの質問が正しく理解されていれば、プログラムは開発マシン上でIDEで実行され、両方の状態でコンパイルされ、文字列が割り当てられていてもなくても、クライアントのマシン上でのみ動作します。このような何かが私に何年も前に起こったし、あなたの問題ではないかもしれないが、少なくともそれを排除することができるかもしれない。クライアントには、コードの一部がマルウェアであると誤って認識したウイルススキャナが含まれている可能性があります。 x = xなどの別の行を追加するだけで良性のものを修正することがあります。

あなたが持っている/実行していない他のものと同様に、他の違いをさらに調べる必要があるかもしれません。

それは重要ですが、変数をどこかに宣言して、Option Explicitを使用していますか?

+0

答えをありがとう! 私は顧客と確認しましたが、evrythingはローカルで実行されていないため、インターネットに接続されていないため、ファイアウォールが動作していませんでした。 プロジェクトを開始したとき、私はオプションを明示的に追加しました。 –

関連する問題