Visual C++の新規プロジェクト作成で、DLLを作成する選択肢は、直感的に「MFC DLL」しか存在しない。これを選んでDLLを作成すると、通常MFCライブラリへの参照も含まれる。MFCクラスライブラリを使わない場合は、リソースの無駄である。
プロジェクトの新規作成ダイアログ
生成されたDLLファイルを、Dependency Walker で開いたところ
実は、新規プロジェクトを作成する時に 「Win32プロジェクト」を選択して、プロジェクト作成ダイアログで詳細設定タブを開いて、DLLを指定すればいいだけである。
プロジェクトの新規作成ダイアログでは、Win32プロジェクトを選択する
生成されたDLLファイルを、Dependency Walker で開いたところ
不必要なMFCへのリンクが存在しない。
なお、この場合、DLL内に含まれるシンボル情報を定義する .def ファイルが自動作成されない。 MFC DLLで作成されるものをコピーしてきて流用するか、自分で作成する必要がある。
DLL filename.def
; defファイル
; 拡張子を除いた、DLLのファイル名を指定
LIBRARY "DLL_filename"
EXPORTS
; DLLで公開する関数名と、一意の序数(重ならなければ適当でよい)を記述
Functionname @0001
このファイルを、プロジェクトのプロパティで、リンカ設定の「モジュール定義ファイル」に指定する。