4

「Microsoft Visual Studio」を使用して「MFC アプリケーション」を操作しています。

「Installshield」を使用して、このアプリケーションのセットアップ ファイルを作成しています。

「setup.exe」ファイルを取得します。

「Windows XP 32 ビット」マシンでこのセットアップを実行すると、インストールは正常に終了します。

それでも、インストールしたプログラムを起動しようとすると、次のメッセージが表示されます。

"The procedure entry point _except_handler4_common could not be located in the dynamic link library msvcrt.dll."

デバッグモードでは、コードにブレークポイントを入れても、ブレークポイントに到達する前にメッセージが表示されるため、エラーが発生した瞬間を見つけることができません。プログラム実行の最初の段階だと思います...

注: Vista 32 ビットおよび Seven 64 ビットで動作します。

多くの人が同じ問題を抱えているようですが、自分で解決策を見つけることができませんでした.

手伝ってくれますか?ありがとうございました。

4

8 に答える 8

5

DLL 地獄とアプリケーション依存関係分析の世界へようこそ。

Win8 マシンの SYSWOW64 (32 ビット System32 フォルダー) に、バージョン 7.0.9200.16384 の DLL が見つかりました。Dependency Walkerを使用して見ると、実際に探している関数がエクスポートされていることがわかります。

私の InstallShield マシンには、このファイルのバージョン 6.00.8797.0 を再配布する MSVCRT.MSM というマージ モジュールもあります。ただし、Dependency Walker を使用して調べると、エクスポートされた関数 _except_handler2 と _except_handler_3 があり、_except_handler_4_common がないことがわかります。

したがって、新しい DLL が必要であり、そのマージ モジュールは役に立ちません。Microsoft は以前、DLL ヘルプ データベースと呼ばれるこのクールな Web サイトを持っていました。これは、ファイルのすべてのバージョンとそれらを出荷したものを教えてくれましたが、悲しいことに、それらはそれを殺しました。

ところで、最近では、この DLL が Windows にインストールされていることもわかります。ウィンドウズ XP? VMを起動して見なければならないので、よくわかりません。

いくつかの可能な解決策:

  1. これを修正する Windows の SP または Hotfix を見つけて、MSI の依存関係にします。

  2. Win 8 マシンから DLL を取得して INSTALLDIR に追加し、非公開で展開します。

最後に 1 つ。これは、Windows XP のバージョンに古いバージョンの DLL が付属している (関連する KB 記事によると、そうであると書かれている) か、サード パーティのアプリケーションが問題の原因となっている DLL を攻撃したことが原因です。ここはもう少し勉強が必要です。

于 2013-02-07T17:07:45.400 に答える
0

あなたのプログラムには、Windows XP では満たされていない依存関係があります。Dependency Walker を使用して特定するか、既知の制限を確認してください。たとえば、Visual Studio 2012 は、Update 1 とビルド オプションが変更されるまで Windows XP をサポートしていません。それを使用していますか?

于 2013-02-07T13:24:36.987 に答える
-1

私は過去 8 時間かけて、このまったく同じエラーでコードを分離しました。それは、アプリケーションのコード行、具体的には OS での IPv6 サポートのチェックであることが判明しました。

conf.IPv6Disabled = !(Socket.OSSupportsIPv6);
  • その行をコメントすると出来上がり、エラーが消えました。
于 2013-07-11T08:28:26.473 に答える
-2

この問題は、windows 7 または 8 または vista を必要とするすべてのソフトウェアまたはゲームで発生しますが、windows xp で実行されます。したがって、プログラムを再開または開始する場合は、プログラムのシステム要件に従って、Windows を 7 または 8 または vista にアップグレードする必要があります。お役に立ちましたら幸いです。

于 2013-03-28T15:33:32.987 に答える