Using one extension DLL in another | CodeGuru

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 […]

Written By
CodeGuru Staff
CodeGuru Staff
Aug 7, 1998
1 minute read
CodeGuru content and product recommendations are editorially independent. We may make money when you click on links to our partners. Learn More

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

CodeGuru Logo

CodeGuru covers topics related to Microsoft-related software development, mobile development, database management, and web application programming. In addition to tutorials and how-tos that teach programmers how to code in Microsoft-related languages and frameworks like C# and .Net, we also publish articles on software development tools, the latest in developer news, and advice for project managers. Cloud services such as Microsoft Azure and database options including SQL Server and MSSQL are also frequently covered.

Property of TechnologyAdvice. © 2026 TechnologyAdvice. All Rights Reserved

Advertiser Disclosure: Some of the products that appear on this site are from companies from which TechnologyAdvice receives compensation. This compensation may impact how and where products appear on this site including, for example, the order in which they appear. TechnologyAdvice does not include all companies or all types of products available in the marketplace.