2

Visual Studio 10 でプロジェクトをコンパイルしています。コンパイルされた実行可能ファイルは win 7 で正常に動作しますが、msvcrt100.dll がないため、win XP では動作しません。「/NOTDEFAULTLIB」を使用しようとしましたが、使用している他の外部ライブラリも削除されます。最新の Microsoft ランタイム ライブラリにリンクしない方法はありますか?

前もって感謝します。

4

2 に答える 2

6

DLL に対してリンクしないようにするには、ランタイムに対して静的にリンクする必要があります。

これを行うには、[C/C++ プロパティ] -> [コード生成] に移動し、[ランタイム ライブラリ] の下で、ドロップダウンから [マルチスレッド (/MT)] または [マルチスレッド デバッグ (/MTd)] を選択します。静的ランタイム ライブラリを使用すると、リンクする他のすべてのライブラリ コードも同じ設定でビルドする必要があることに注意してください。また、追加のライブラリをリンカーに追加する必要がある可能性があります->追加の依存関係の下の入力。

于 2012-07-23T19:04:33.187 に答える
3

それは偶然にWindows7マシンでのみ動作し、誰かが以前にそのDLLをインストールしました。

インストーラーを作成するだけで(セットアッププロジェクトで簡単に実行できます)、簡単な修正は、msvcr100.dllを独自のバイナリと一緒にコピーすることです。EXEしかない場合、簡単な解決策は静的バージョンのCRTをリンクすることです。リリースビルドに切り替え、プロジェクト、プロパティ、C / C ++、コード生成、ランタイムライブラリ設定を右クリックします。デフォルトの/MDから/MTに変更します。

于 2012-07-23T19:02:53.907 に答える