2

C プログラムを作成し、Windows 7 と Linux で正常に動作しましたが、Windows XP で実行すると次のエラーが発生します。

"_except_handler4_common could not be located in the dynamic link library msvcrt.dll"

調べてみたところ、私が持っていないDLL「dwmapi.dll」を削除するようにという人もいましたが、それは私の問題ではありません。

depends walker(depends.exe)を使用している人を見つけるためにを使用するように言われた人がいますmsvcrt.dll。ライブラリがそれを使用していて、実際には問題があることがわかりpcreましたが、これを解決する方法がわかりません。誰でも私を助けることができますか?

これは、ウォーカーに依存するものの画像です。

ここに画像の説明を入力

4

2 に答える 2

3

理由の可能性 (afaiu):

a) ビルド時に具体的に msvcrt.dll にリンクしました - これは、具体的に行わない限り、Microsoft のサポートによれば発生しないはずです。

b) 「間違った」バージョンの msvcrl.dll にリンクする、XP にインストールまたはコピーされた他のプログラム/ドライバーがトリガーされています。

理由に応じて、解決すべきいくつかのアイデアを次に示します。

1) いくつかのプログラム/ドライバー/その他が存在する可能性があります。「Vista / Win7関連のがらくた」を導入したXPマシンへのインストール。PCRE3.DLL は「GnuWin32 非システム プロセス」に属すると (インターネットで) 言われています。つまり、それを見つけて、名前を変更/削除しようとすることができます。または、それを使用しているプログラムを削除します。

2) Win7でビルドするために使用した C++ 再頒布可能パッケージの XP 用の再配布版をインストールすると役立つ場合があります。これは VS2005 のリンクです。

再構築:

3) 取得できる VisualStudio バージョンを使用して、XP マシンのソースからファイルをビルドするだけです。そして、これらの VS プロジェクトのプロパティを確認してください!

4) Windows7 でビルドを修正します。Windows 7 ビルドの msvcrt.dll で _except_handler4_common にリンクしている可能性があります。そうしないように注意してください。VisualStudio プロジェクト プロパティ "/NODEFAULTLIB:msvcrt80.lib" で、リンカにリンクしないように具体的に指示できます。また、構築に何を使用しているかも指定しませんでした。VS2005、VS2008、VS2010、gcc?

ここでの経験に基づいた推測とジェフリー・タンの研究に基づく回答:

ここで研究します

于 2012-10-31T17:50:21.450 に答える
0

(OPに代わって)

前に言ったように、問題は pcre3.dll にありました。バージョンを変更するだけです。バージョン 7.x を使用していて、pcre3.dll の代わりに pcre.dll を呼び出す 4.4 に変更すると、問題が解決します。誰かが同じ問題を抱えている場合、私の問題。

正しいライブラリへのリンクは次のとおりです: pcre-4.4-dll.zip

于 2013-03-19T12:46:56.660 に答える