いくつかの C++ プロジェクトでブーストを使用しています。最近、アップグレード (1.33.1 から 1.36、すぐに 1.37 へ) を行いました。それ以来、デバッグビルドを実行できなくなりました。
他のプロジェクトの問題が残っていないことを確認するために、boost.thread のみを含む最小限のテスト プロジェクトを作成し、それを使用して 1 つのメソッドを開始しました。リリース ビルドは開始できますが、デバッグ ビルドは開始できませんが、必要なすべてのライブラリが見つかったことがDependency Walkerによって示されます (これは、必要な MS Debug CRT が SxS ディレクトリにあることも意味します)。
起動時に取得するのは次のとおりです。
Die Anwendung konnte nicht richtig initialisiert werden (0xc0150002)。Klicken Sie auf "OK", um die Anwendung zu Beenden.
つまり、「アプリの初期化に失敗しました」というだけです。インターネット調査では、主にMS Office のインストールに関する問題が発生しており、WinXP の修復を推奨しています。
それで、修復セットアップ(debug-dllの問題について話しているので役に立たないと思います)のほかに、何かアイデアはありますか?
ああ、忘れる前に: 完全に同じソース コードは、ビルド マシンでエラーを発生させません (つまり、DLL を登録することができ、実行されることを意味します)。明らかにインストールの問題ですが、DLLがそこにあり、dependency-walker がそれを見つけたので、他に何を忘れたのでしょうか?
(編集) さて、私はまだ問題を解決していませんが、deemok のおかげで一歩前進しました。誤解を減らすために、以下にいくつかの説明をします。
- 開発者マシンでプログラムを実行できない
- インストールされた VS2005 で作業しています(これは VC++8 プロジェクトです)
- BoostProのブーストセットアップを使用し、可能なすべてのビルドバージョンをコンパイルし、それらが存在することを再確認しました (そうしないと、ビルド中に既にリンカーエラーが発生していました)。
- そして、私が考えることができる include/lib/bin 構成の隅々を再確認しました-ブーストはウィンドウで自動リンクを使用するため、特別な命名規則を使用して、ビルドまたは起動が失敗し、はるかにわかりやすいエラーメッセージ。
- boost.thread は DLL プロジェクトの動的リンクを必要とするため、静的リンクは使用できません(ここで混乱する可能性がありますが、この問題は私のマシンでのみ発生するように思われるため、これを混乱させたくありません。ブースト担当者には、そもそもそのチェックインをそこに配置する理由がありました)
- 私が書いたように、依存関係ウォーカーに確認したところ、すべて問題ないとのことです。
現在、boost-dll にエラーがあるようです (マニフェストが正しくない可能性があります)。それを確認します。