If you create an extension DLL you can most
conveniently export one or more of its classes using AFX_EXT_CLASS.
However if you create a second extension DLL and try to use classes
from the first you will run into a small problem.
The value of AFX_EXT_CLASS will cause your new DLL
to try and export your dependent classes! You will get link errors such as
below for the classes in the first DLL:
error LNK2001: unresolved external
symbol ……….
What you need to do is temporarily re-define
AFX_EXT_CLASS when you include the header files for the classes in
the DLL you are importing classes from. The following example shows
how to do this:
//change the definition of AFX_EXT… to
make it import
#undef AFX_EXT_CLASS
#undef AFX_EXT_API
#undef AFX_EXT_DATA
#define AFX_EXT_CLASS AFX_CLASS_IMPORT
#define AFX_EXT_API AFX_API_IMPORT
#define AFX_EXT_DATA AFX_DATA_IMPORT
//Include headers for the dll / lib that we
use classes from
#include “DLLOne.H”
//put the values back to make AFX_EXT_CLASS
export again
#undef AFX_EXT_CLASS
#undef AFX_EXT_API
#undef AFX_EXT_DATA
#define AFX_EXT_CLASS AFX_CLASS_EXPORT
#define AFX_EXT_API AFX_API_EXPORT
#define AFX_EXT_DATA AFX_DATA_EXPORT
//Include headers for the classes we are
creating in this DLL
#include “DLLTwo.H”
Posted: March, 8, 98