質問

Windows ネイティブ アプリケーションを配布するときに、vcredist.exe をわざわざ使用する必要がありますか?これらのいずれかが Win-7 にバンドルされていますか?

そうでない場合、これらがたとえば配送業者を通じて人々に発送されない技術的な理由はありますか?Windows Update - 動作しなければならない別のことを顧客に負担させる代わりに?(理屈っぽいように聞こえるかもしれませんが、これらのライブラリが Windows マシンにデフォルトでインストール/更新されない理由が本当に不思議です)

役に立ちましたか?

解決

それはあなたがどのように/何にリンクされているかによると思います。kernel32.dll などに直接リンクしている場合は、もちろん問題ありません (つまり、c ランタイム ライブラリが埋め込まれています)、しかし Microsoft はその配布方法を推奨していません。

msvcr80/90/whatever 2010 is.dll を介してリンクされている場合、XP には標準で付属していないため、そのランタイム ライブラリを配布する必要がある場合があります。msvcr80 は Vista に搭載されていますが、msvcr90 は搭載されていないと思います。ただし、Windows Update によって追加される可能性があります。それでも、それがそこに存在することに依存することはできないため、万が一に備えてコピーを用意しておくことがフェイルセーフです。

私の知る限り、msvcrt.dll (mingw のリンク先) はすべての > XP とともに配布されています。vc6はこれにリンクしていますか?当時は VC++ を持っていませんでした。

実行可能ファイルを見てください depends.exe Windows SDK から取得し、Windows API の一部に加えて何が付属しているかを調べます。

他のヒント

はい、できません。あなたはそれを実行しようとすると、そうでない場合は、あなたのプログラムが見事にクラッシュします。ユーザーの多くはwin7のを実行していない、とさえ、彼らはあなたのインストーラでそれを含めずにランタイムをインストールしていることを確認する方法はありません。

別の方法としては、あなたがCランタイム再配布可能で悩まの必要性を回避、ランタイムの静的ビルドとリンクすることができます。

ときGCC IとXP上で以降が常にあるMSVCRT.DLLと常にリンクをコンパイルします。

このは午後11時29分で、4月14日付けのラリー・オスターマンさんのコメントに反応している。

あなたが言うます:

  

MSVCRT.DLLは、Cランタイムではありません。それはしてはいけませんのWindowsの内部コンポーネントです   サードパーティ製のアプリケーションで使用されます。あなたがいることをMSDN上の任意の参照を見つけることができないことに注意しましょう   このDLLを使用します。サードパーティアプリケーションがこれを使用しますがされていないことをワンス・アポン・ア・タイム   約10年の場合。 - ラリー・オスターマン4月14日夜11時29時

このはMSVCRT.DLLへのアクセスに基づいており、あなたのコメントは私がより良いmingwの仕組みを理解することが許可されているmingwのシステムの全体の前提に反するように見えました。それはmingwのは、まだ1998年に戻って出荷されたMSVCRT.DLLを使用していることが判明します!このリンクを参照してください。

http://www.mingw.org/wiki/C99する

ありがとう、

トッド

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top