Looking at this from MSDN:
One would think you could have a private std::string and be ok. However the compiler will warn you that clients of your class need a dll interface to access your variable. Now if the export only exports public data members and member functions (public member functions?) why does it give this warning if your private data member is not actually being exported?To export all of the public data members and member functions in a class, the keyword must appear to the left of the class name as follows:
Code:Copyclass __declspec(dllexport) CExampleExport : public CObject { ... class definition ... };