001
14.11.2005, 12:22 Uhr
Tommix
|
Hallo Schnuckel Das ist das tolle an Makros, sie debuggen sich so schön. DECLARE_DYNAMIC erzeugt ein CRuntimeClass-Objekt, dessen Name sich aus dem übergebenen Klassenname herleitet:
C++: |
public: static const CRuntimeClass classCTabDlg; virtual CRuntimeClass* GetRuntimeClass() const;
|
IMPLEMENT_DYNAMIC arbeitet genau so. Der Text, der als Klassenname übergeben wird, muß also exakt der gleiche sein, was in Deinem Fall aber nicht geht:
C++: |
const CRuntimeClass CMeinDlg::CTabDlg::classCMeinDlg::CTabDlg = { "CMeinDlg::CTabDlg", sizeof(class CMeinDlg::CTabDlg), 0xFFFF, 0, ((CRuntimeClass*)(&CDialog::classCDialog)), 0 }; CRuntimeClass* CMeinDlg::CTabDlg::GetRuntimeClass() const { return ((CRuntimeClass*)(&CMeinDlg::CTabDlg::classCMeinDlg::CTabDlg)); }
|
Du müßtest also, falls Du Dir das antun willst, die Implementierung selbst schreiben (mit classCTabDlg anstelle von classCMeinDlg::CTabDlg). Den obigen Präprozessor-Output bekommst Du übrigens mit
Code: |
cl MeinDlg.cpp /P /EP
|
Gruß, Tommix |