VC++で作成したEXEをランタイムDLL無しで単体で起動させる設定

プログラミング プログラミング
プログラミング
Sponsored links
Sponsored links

久しぶりにVC++でプログラムを作成

最近はC#ばかりでソフトウェアを開発しています。久しぶりにC++で簡単なソフトウェアを作成しました。ところが、別の人に使ってもらうために渡したところ、動作しない!なぜ?

開発環境

開発環境は、今まではほとんどVisual Studio 2010を使っていましたが、今回はVisual Studio 2022を使い始めました。

思い出した

そういえば、C++を使う場合はランタイムが必要だったことを思い出しました。すっかり忘れていました。Visual StudioがインストールされているPCには自動的にVCランタイムライブラリがインストールされているので、Visual StudioがインストールされていないPCでは再配布ライブラリーをインストールする必要があります。
そういえば、昔は再配布ライブラリーをインストールしてもらうために説明するのが面倒だったので、スタティックリンクして作成していました。

スタティックリンク設定

「ソリューション エクスプローラ」でプロジェクトを選択して右クリックでコンテキストメニューを表示します。コンテキストメニューから「プロパティ」を選択します。
「構成プロパティ」の「C/C++」「コード生成」を選択します。
プロパティページの右側の「ランタイムライブラリ」を”マルチスレッド(/MT)“に変更します。
これでランタイムライブラリがスタティックリンクされるようになります。

まとめ

久しぶりにC++でプログラムを組みました。C#で組んでもよかったのですが、たまにはC++使わないと忘れてしまいそうなので。
また、C/C++で開発されたライブラリをC#で呼び出すために、C++/CLIを時々使う必要があります。そのためにも簡単なプログラムはできるだけC/C++やC++/CLIを使おうと思っています。
スタティックリンクのこともすっかり忘れていたので・・・
生成されたEXEファイルが少々大きくなりますが、再配布ライブラリをインストールしてもらうことを考えると、説明する手間が省けていいですよね。

タイトルとURLをコピーしました