torutkのブログ

ソフトウェア・エンジニアのブログ

VC++標準C/C++ライブラリについて

VC++7.1やVC++ Toolkit 2003では、MSVCR71.DLLとMSVCP71.DLLがそれぞれC標準ランタイム、C++標準ランタイムとなっています。リンク時の指定や実行時のファイルの場所等でそれなりに違いが発生します。

VC++ Toolkit 2003で問題となるケース、/MDオプション

マルチスレッドで動的リンクを使用するオプション(/MDまたは/MDd)を指定すると問題が発生します。多分、msvcrt.libやmsvcprt.libが見つからないというエラーが発生します。これは、VC++ Toolkit 2003には、msvcr71.dll/msvcp71.dllのインポートライブラリであるmsvcrt.lib/msvcprt.libが含まれていないからです。

C標準ランタイム用インポートライブラリファイルは、.NET Framework 1.1 SDKをインストールすると含まれています。それを利用するのがよいでしょう。

C++標準ランタイム用インポートライブラリファイル(msvcprt.lib)は無償で入手する方法が見当たりませんが、msvcp71.dllから生成することができます。