I have a static library project and a exe project. The exe project uses the static lib. In my static lib I have several classes split into seperate .h and .cpp files. However the project is that some of the classes require __declspec(dllexport) and some don't. All of the classes are used in the exe in a similar fasion. If I don't put __declspec(dllexport) on the classes that some reason require it I get the error:
error LNK2001: unresolved external symbol "public: __thiscall EffectObjectBase:perator char const *(void)" (??BEffectObjectBase@@QAEPBDXZ) Main.obj
Of course if I don't use that class in the exe the error doesn't exist. The class looks like this:
Just a note, both Effect and EffectTechnique also require __declspec(dllexport).Code:class EffectObjectBase { friend class Effect; friend class EffectTechnique; protected: Effect* effect; D3DXHANDLE handle; public: EffectObjectBase(); __forceinline Effect* GetEffect(); __forceinline D3DXHANDLE GetHandle(); __forceinline operator D3DXHANDLE(); };
Does anyone have an idea why some of the classes require it and the others don't?



LinkBack URL
About LinkBacks
perator char const *(void)" (??BEffectObjectBase@@QAEPBDXZ) Main.obj


