VS2017 で Release でビルドした EXE 内を探ると VCRUNTIME140D.DLL を使ってしまう件(タイトル長っ

「VCRUNTIME140D.DLL」のように最後に「D」が付くものは、デバッグ用の DLL ですので、Release ビルドで作った DLL 内を探ったときに、この「D」付きの DLL を使用しているとまずいことになりますw *1

 

まずは以下2点を確認してください。

 

・リリースビルドをしていますか?

ツールバーにある「ソリューション構成」が「Release」になっている事を確認してください。

 

・ランタイムライブラリは /MT か /MD になっていますか?

プロジェクトのプロパティから「C/C++」の「コード生成」を開きます。

「ランタイム ライブラリ」が /MT か /MD になっている事を確認してください。

(/MTd や /MDd のように最後に「d」が付いているものはデバッグ用です。)

 

それでもリリースビルドでデバッグ用の DLL を使用してしまう、そこのあなた!

デバッグ用の DLL を使用していないか確認してください。

 

プロジェクトのプロパティから、「リンカー」の「入力」にある「追加の依存ファイル」を調べてください。最後が「d」で終わっている lib があったりしませんか?

 

Visual Studio がリリースビルドの時は、

デバッグ用の DLL を使っているけど大丈夫なの?」って

エラーを出してくれるとすぐわかるんですけどねえ・・・。

(人は間違える生き物です・・・w)

Visual Studioデバッグ用の lib を使っていると、デバッグ用の DLL をしれっと使います。

設定無視の警告無しです。

「警告なしのビルド。やはり此処は政府の最重要プロジェクトか。」by 少佐(風w)

 

自分の場合は案の定w、デバッグ用の lib を使っていましたw

このバカチンがーっwww

最後が「d」無しの lib を指定したらすぐ直りました。

*1:DLL の内部を探るツールはググってください。すぐ見つかると思います。