2009-03-05 20 views
0

私はこの話題がニュースグループで死に至ったと知っており、アフリカのためのフォーラムポストがありますが、私はスタックオーバーフローに関する専門家のオプションを望んでいました:)VB6アプリケーションはトレースなしで消えます:PCodeとネイティブコードを切り替えると違いが出ますか?

VB6アプリは、何かやっても何のエラーも与えず、PCのエラーログにも記録されていません!

誰もがVB6でこれを聞いたことがあり、それを修正するために何をしたのですか?

おそらく、すべてのコードをネイティブコードからpcodeに変更した方が安定性が向上すると思いますか?


追加情報:我々のアプリケーションがある

    • 私たちは、編集に追加MDAC 2.8
    • 真のDBグリッド6.0e

    ノートを使用しています113個の独立したコンポーネントと120 MBのコンパイル済みサイズの非常に大きいe(埋め込まれた写真や何もない)

  • 私たちのプレゼンテーションレイヤーは、その場でオブジェクトを作成するので、すべてが遅いです。
  • 実際にVB6アプリケーションのローカルパフォーマンスが気になるわけではありません。私が見る限り、深刻な処理は実際には行われないため、データセンターのOracle Databaseからパフォーマンスが完全にボトルネックになっています。 300人のユーザー - 悪夢!
+0

>>しかし、私はスタック交換であなたの専門家のオプションを望んでいました:) おそらく、専門家の交換とスタックのオーバーフローが混在していました。 – goldenmean

+0

私は乗り物がオフィスを離れるのと同じように急いで入力していました専門家の交換が私の頭にポップアップ - 私の悪い:) – Davinchio

答えて

1

違いがあります。しかしどちらか一方に有利ではない。 2つの方法がまったく同じではないため、エッジケースで異なる結果が得られます。

私が記述している問題は、コンパイラの問題がプログラマの間違いではないことも理解しています。だからあなたは本当にこれが問題であることを確認したい。私たちは最後の良いバージョンと比較してこれをチェックします。

私たちが遭遇した問題は、大きなプロジェクトの中には、コードのわずかな変更によってエラーが発生する(またはアプリが消えてしまう)点があります。これは、バイナリが使用されている場合に発生します。

このまれな状況が発生した場合、修正する唯一の方法は、コード行を並べ替えるか、i = iのようにダミー行を挿入することです。コンパイラがアセンブリやpcodeの別のシーケンスを生成するようなもの。それから問題は解消されます。

私たちがこれを行い、正常にコンパイルし、元に戻し、正常にコンパイルする例がいくつかありました。この場合に起こると思われることは、わずかに異なるバイナリ/ pcodeのセットが強制的に発行されるようにレジストリが変更されることです。

また、レジストリとローカルの一時フォルダをクリーニングすることもできます。

これは、複数の参照を含む大きなプロジェクトを1000から500までコンパイルするたびに発生する可能性があります。

これが発生すると、原因と解決策は無意味なように見え、私はブードゥー人形を吹き飛ばしてレインダンスをしたいと思うようになります。

関連する問題