「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 の内部を探るツールはググってください。すぐ見つかると思います。