DLL導出類
DLL中定義的類可以在應用工程中使用。
#ifdef MYDLL_EXPORTS
#define MYDLL_API __declspec(dllexport)
#else
#pragma message("auto to link the Test2.lib")
#define MYDLL_API __declspec(dllimport)
#endif
class MYDLL_API CMyClass
{
public:
CString SayHello(CString strName);
CMyClass();
virtual ~CMyClass();
};
// MyClass.cpp: implementation of the CMyClass class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#define MYDLL_EXPORTS
#include "Test2.h"
#include "MyClass.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CMyClass::CMyClass()
{
}
CMyClass::~CMyClass()
{
}
CString CMyClass::SayHello(CString strName)
{
return "Hello " + strName;
}
由於在應用程序中沒有定義MYDLL_EXPORTS, 故MyClass.h 被引入的類聲明
而在應用工程中沒有定義DLL_FILE,故其包含point.h和circle.h後引入的類聲明爲:
class _declspec(dllimport) CMyClass/ /導入類CMyClass
{
…
}