
本記事が扱う事象は、Windows 10 環境でアプリやゲームの起動時に「MSVCP100.dll が見つからない」と表示され、実行が止まるケースです。2017年ごろのEA Forums(EAフォーラム)でも同種の報告があり、ある投稿では iTunes の導入後に症状が解消したと記録されています。(EA Forum)
そのため本記事では、MSVCP100.dll の位置づけ、発生しやすい条件、iTunes で解消し得る理由を、因果関係を軸に整理します。
- 2017年Windows 10で報告された「MSVCP100.dll不足」の位置づけ
- MSVCP100.dllは何か:Visual C++ 2010系ランタイムとの関係
- iTunes導入で解消し得る理由:同梱ランタイムが埋めた欠落
- 32/64bitと複数バージョンが分岐点になる
- 「直った」後に残る論点:再発と配布側の責任分界
2017年Windows 10で報告された「MSVCP100.dll不足」の位置づけ
MSVCP100.dll 不足は「特定アプリが必要とする実行部品がOS側に存在しない」構造で起きます。
EAのサポート記事でも、.dll エラーは Visual C++(ビジュアル シー プラスプラス)の再頒布可能パッケージ不足などで生じる前提が示されています。(EAヘルプ)
本記事の対象となる事象がやや分かりにくいのは、エラーが「ゲームやアプリ側の不具合」に見える一方で、実際には Windows 上で複数製品が共有するランタイム(実行時ライブラリ)の欠落が中心になるためです。つまり、同じタイトルでも端末ごとに出たり出なかったりする条件差が生じる可能性があります。
一方で、EA Forums の事例では iTunes の導入によって解消したと記されており、直接の原因が iTunes ではなく、同時に導入された周辺コンポーネントにあることが読み取れます。(EA Forum)
この点から、次章では MSVCP100.dll が何の部品かを整理します。
MSVCP100.dllは何か:Visual C++ 2010系ランタイムとの関係
MSVCP100.dll は Visual C++ 2010 系の標準ライブラリとして利用されることが多いファイルです。
EAの整理では「MSVCR100.dll / MSVCP100.dll は Microsoft Visual C++ 2010」に対応づけられています。(EAヘルプ)
.dll は Dynamic Link Library(動的リンクライブラリ)を指し、実行ファイルが起動時に外部の部品を読み込む方式で使われます。そうすることによって、アプリ本体は小さく保たれ、OS上の共通部品を複数アプリで共有できます。
ただし共有である以上、OS側にその部品が無い、または壊れていると、起動時点で読み込みに失敗し、今回のような停止につながります。
なお Microsoft は Visual C++ 2010 Service Pack 1(サービス パック 1)再頒布可能パッケージをダウンロードセンターで提供しており、2010系部品が独立した配布物として扱われることも示唆されます。(Microsoft)
以上を踏まえると、次章の「iTunes で解消した」現象は、iTunes が別目的でこうした部品を同梱・導入した可能性で説明しやすくなります。
iTunes導入で解消し得る理由:同梱ランタイムが埋めた欠落
iTunesで解消したように見えるケースは、iTunes本体ではなく同時に整う Visual C++ 系部品が要因になり得ます。
EA Forums の投稿には「iTunes を入れたら動いた」という趣旨が残っており、偶然の修復として観測されています。(EA Forum)
この手の現象は、インストーる対象のアプリが Visual C++ 再頒布可能パッケージを前提にしている場合に起こります。つまり、ある製品を入れた結果として、別製品が必要としていたランタイムが後追いで入る構図です。
Apple のコミュニティでも iTunes インストール時に Visual C++ の 32/64bit 構成が関係する可能性に触れた投稿があり、周辺部品の整合がインストール成否や動作に影響し得ることが示されています。(Apple Support Community)
ただし、iTunes が常に同じ部品を同じ条件で導入するとは限りません。OSの更新状態、既存の再頒布可能パッケージの有無、x86/x64 の混在などで結果が変わります。
そのため次章では、同じ「MSVCP100.dll不足」でも分岐しやすい確認軸を整理します。
32/64bitと複数バージョンが分岐点になる
MSVCP100.dll不足の整理では「どの版(x86/x64)のどの年の VC++ が欠けたか」が判断材料として重要です。
EAのサポート記事は、エラー名(MSVCP100.dll など)から必要な Visual C++ の年次を対応づけ、さらに OS が 64bit か 32bit かで導入対象が変わる前提を示しています。(EAヘルプ)
そのため、まず「ファイル名=年次」の対応を押さえると論点が整理しやすくなります。なお下表は EA が示す対応のうち、代表例を短くまとめたものです。
| エラーに現れやすいDLL | 対応づけられる年次 | 位置づけ |
|---|---|---|
| MSVCP100.dll / MSVCR100.dll | 2010 | 旧版ランタイム |
| MSVCP110.dll / MSVCR110.dll | 2012 | 旧版ランタイム |
| MSVCP120.dll / MSVCR120.dll | 2013 | 旧版ランタイム |
| ucrtbase.dll など | Universal C Runtime(共通C実行部品) | OS側要素も絡む |
ただし、年次が分かっても「x86/x64 のどちらが必要か」で結果が割れます。EA は 64bit OS なら x64、32bit OS なら x86 を選ぶ流れを示しつつ、ゲームのインストール配下にある _Installer\vc\redist 内の vcredist を順に実行する考え方も提示しています。(EAヘルプ)
言い換えると、OSの種類と、対象アプリが 32bit で動くか 64bit で動くかが交差するため、導入対象の判断が単純化しにくい構造です。
さらに分岐点として、Microsoft 側の「最新サポート」情報は主に新しい系統(例:2015以降)を中心に整理され、2010 のようなレガシー(旧版)は別経路での配布になる点も実務上の確認点となります。(Microsoft Learn)
この結果、次章では「なぜ不足が残り続けるのか」「管理上どこが抜けやすいのか」を制度面からまとめます。
| 分岐が起きる要因 | 典型的な状況 | 整理の観点 |
|---|---|---|
| x86/x64の不一致 | 64bit OS だが 32bit アプリを実行 | 両方の導入要否 |
| 複数年次の共存 | 2010/2012/2013 が同居 | 欠落年次の特定 |
| Windows 更新の遅れ | CRT 系の更新が未反映 | 更新状態の影響 |
| ベンダー同梱の差 | iTunes 等で偶然そろう | 導入経路の違い |
「直った」後に残る論点:再発と配布側の責任分界
根本は「アプリが依存するランタイムを、端末側で安定して満たせるか」という運用の問題です。
開発・配布の観点では、Visual C++ の再頒布可能パッケージは「Visual Studio(ビジュアル スタジオ)で作られたC++アプリを、開発環境が無いPCでも動かすための実行部品」を提供するものとして説明されています。(Microsoft)
つまり、MSVCP100.dll 不足が発生した場合、アプリ側は「動的リンクで外部部品を前提にしている」設計であり、端末側は「必要部品が揃っている」状態であることが前提になります。そうすることによって配布物は軽くなりますが、他方で端末更新やソフト入れ替えにより欠落が再発する余地も残ります。
なお EA は Windows Update(ウィンドウズ アップデート)の未適用が残っている場合の影響にも触れており、OS更新が依存関係の一部になる構図を示しています。(EAヘルプ)
以上を踏まえると、「iTunes を入れたら直った」という記録は、端末内の依存関係がたまたま充足した事例として整理できます。言い換えると、原因が単一アプリではなく、端末内のランタイム構成全体にあることがポイントです。
そのため、同様の停止が再び起きた場合は、欠落ファイル名(MSVCP100.dll など)を起点に年次とアーキテクチャを切り分ける、という整理手順が合理的だと位置づけられます。