Hi Eljay Thanks for your kind help. Regards XiaGuangTai 2007-8-25 On 8/22/07, John Love-Jensen <eljay@xxxxxxxxx> wrote: > Hi XiaGuangTai, > > On my project, we use these tags: > > // Windows using VC++ > #define EXPORT __declspec(dllimport) > #define CLASS_EXPORT > > NOTE: VC++ uses a "flippy" EXPORT macro. It's __declspec(dllexport) when > building the library, and __declspec(dllimport) when using the library. > > // Using GCC, with visibility set to "hidden" for the project. > #define EXPORT __attribute__((visibility("default"))) > #define CLASS_EXPORT __attribute__((visibility("default"))) > > Then we have classes like: > > class CLASS_EXPORT Foo > { > public: > EXPORT Foo(); > EXPORT Foo(int); > EXPORT Foo(double); > EXPORT virtual ~Foo(); > }; > > Is that the sort of declare control you are looking for? > > Side note, the CLASS_EXPORT is needed for GCC so the RTTI information is > externally visible. Otherwise you may run into problems with exception > handling and typeid. > > Sincerely, > --Eljay > >