Using one extension DLL in another

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_API

//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_API

//Include headers for the classes we are creating in this DLL
#include "DLLTwo.H"

Posted: March, 8, 98


Leave a Comment
  • Your email address will not be published. All fields are required.

Top White Papers and Webcasts

  • Anthony Christie, the Chief Marketing Officer for Level Communications, is responsible for customer experience, worldwide marketing and product management. In this informative asset, he shares his insights into why a private network connection to cloud-bases applications is the right decision for your enterprise. Download now to find out more.

  • Moving from an on-premises environment to Office 365 does not remove the need to plan for disruptions or reduce the business risk requirements for protecting email services. If anything, some risks increase with a move to the cloud. Read how to ease the transition every business faces if considering or already migrating to cloud email. This white paper discusses: Setting expectations when migrating to Office 365 Understanding the implications of relying solely on Exchange Online security Necessary archiving …

Most Popular Programming Stories

More for Developers

RSS Feeds

Thanks for your registration, follow us on our social networks to keep up-to-date