LoginSignup
26
23

More than 5 years have passed since last update.

Visual C++で作成したEXEを、ランタイムDLL無しに単体で起動できるようにするには

Last updated at Posted at 2017-05-03

Visual C++で作成したEXEが、他の環境だと動かない時

Visual C++ 2015等でWin32なEXEやDLLを作るとき、デフォルトでは作成したEXEやDLLは単体では動かず、CランタイムのDLLが必要になり、VC++インストールディレクトリのredistフォルダ内のファイルを同梱しないと他の環境では動かなくなります(vcruntime140.dllとかmsvcp140.dllとか)。
作成したプログラムを他の人へメールで渡すと「起動しない」と言われたりするのは、これが理由の場合が多いです。

解決策

Visual C++の場合、プロジェクトのプロパティから、C/C++のCode GenerationのRuntime Libraryを、Releaseビルドでは/MTにすることで、EXEにランタイムがスタティックリンクされます。

image.png

ちょっとしたデモ用だったり、Unityの中で呼び出されるDLLにする場合等には依存関係が面倒ですので、スタティックリンクしてしまう方が良い場合が有ります。
良かったら試してみてね。

26
23
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
26
23