15,471
社区成员
发帖
与我相关
我的任务
分享
class __declspec ( dllexport ) ClassA : public CObject
{
DECLARE_DYNCREATE ( ClassA )
public :
static int a ;
ClassA () {} ;
ClassA ( CString sz ) { szA = sz ; }
void Show () { AfxMessageBox ( szA ) ; }
CString szA ;
};
class __declspec ( dllexport ) ClassB : public ClassA
{
DECLARE_DYNCREATE ( ClassB )
public:
ClassB () {} ;
ClassB ( CString sz ) { szA = sz ; }
};
#include "NewClass.h"
int ClassA::a = 1 ;
IMPLEMENT_DYNCREATE ( ClassA , CObject )
IMPLEMENT_DYNCREATE ( ClassB , ClassA )
#include "../NewClass.h"
int ClassA::a = 0 ;
IMPLEMENT_DYNCREATE ( ClassA , CObject )
IMPLEMENT_DYNCREATE ( ClassB , ClassA )
void CMfcTestDlg::OnButton1()
{
// TODO: Add your control notification handler code here
ClassB a ( "ADSF" ) ;
a.Show () ;
int xx = ClassA::a ;
if ( a.IsKindOf ( RUNTIME_CLASS ( ClassA ) ) && a.IsKindOf ( RUNTIME_CLASS ( ClassB ) ) )
int fff = 1 ;
}
// 外部工程使用导出类:
//
// 你确保你的导出类在DLL中与外部工程中的定义一致?
//
// 你确保你把DLL的LIB文件引入到你的工程了吗?
//
// 不写怎么编译不过去?报什么错误?????
// NewClass.h
class __declspec ( dllexport ) ClassA : public CObject
{
DECLARE_DYNCREATE ( ClassA )
public :
static int a ;
ClassA () {} ;
ClassA ( CString sz ) { szA = sz ; }
void Show () { AfxMessageBox ( szA ) ; }
CString szA ;
};
class __declspec ( dllexport ) ClassB : public ClassA
{
DECLARE_DYNCREATE ( ClassB )
public:
ClassB () {} ;
ClassB ( CString sz ) { szA = sz ; }
};
//NewClass.cpp
IMPLEMENT_DYNCREATE ( ClassA , CObject )
IMPLEMENT_DYNCREATE ( ClassB , ClassA )
//外部调用
#include "../NewClass.h"
int ClassA::a = 0 ;
IMPLEMENT_DYNCREATE ( ClassA , CObject )
IMPLEMENT_DYNCREATE ( ClassB , ClassA )
void CMfcTestDlg::OnButton1()
{
// TODO: Add your control notification handler code here
ClassB a ( "ADSF" ) ;
a.Show () ;
int xx = ClassA::a ;
if ( a.IsKindOf ( RUNTIME_CLASS ( ClassA ) ) && a.IsKindOf ( RUNTIME_CLASS ( ClassB ) ) )
int fff = 1 ;
}