2004年01月06日
VC++ ビルドエラー
DLL を作ろうとして、HogeFunc を .def ファイルでエクスポート指定しようとしたらこんなことを言われた。
.\hogedll.def : warning LNK4022: シンボル "HogeFunc" の unique match が見つかりません
.\hogedll.def : warning LNK4002: "int __stdcall HogeFunc(unsigned long,int)" (?HogeFunc@@YGHKH@Z) は .\Debug\main.obj で定義されています
.\hogedll.def : warning LNK4002: "public: virtual int __thiscall A::HogeFunc(int)" (?HogeFunc@A@@UAEHH@Z) は .\Debug\A.obj で定義されています
そうか、同じ関数名で複数の実体があると、.def ファイルでは限界があるのか。これって解決できるんだろか。
こういう場合は __declspec(dllexport) で逃げた方がいいのかな。