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) で逃げた方がいいのかな。