`
huozheleisi
  • 浏览: 1234993 次
文章分类
社区版块
存档分类
最新评论

在DLL中使用扩展的DLL

 
阅读更多

如果你建立了一个扩展的DLL,你能更方便的使用AFX_EXT_CLASS输出一个或
更多的类。然而,如果你建立了第二个扩展DLL,并且试图使用来自第一个的类,
就会出现一些小问题。

你将在第一个DLL得到一个就象下面的链接错误:

error LNK2001: unresolved external symbol ..........

当你在DLL里为该类包含头文件时,你需要临时重新定义AFX_EXT_CLASS的值。
下面的例子显示了如何实现:

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

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics