Problem mit Membervariable
-
Hallo, ich erhalte folgenden Fehler, wenn ich die Headerdatei einer
zu nutzenden DLL einbinde:Fehler 1 error C2011: 'CPDFSplitMerge': 'class' Typneudefinition ...axpdf\cpdfsplitmerge.h
Dies passiert aber NUR dann, wenn ich die Membervariable zur DLL
für die ganze Klasse anlege. Innerhalb einer einzelnen Funktion klappt es
mitCPDFSplitMerge m_var;
wunderbar.
Kann sich das jemand erklären? Die Headerdatei sieht so aus:
// Machine generated IDispatch wrapper class(es) created with Add Class from Typelib Wizard // CPDFSplitMerge wrapper class class CPDFSplitMerge : public COleDispatchDriver { public: CPDFSplitMerge(){} // Calls COleDispatchDriver default constructor CPDFSplitMerge(LPDISPATCH pDispatch) : COleDispatchDriver(pDispatch) {} CPDFSplitMerge(const CPDFSplitMerge& dispatchSrc) : COleDispatchDriver(dispatchSrc) {} // Attributes public: // Operations public: // IPDFSplitMerge methods public: void Split(LPCTSTR strInPdf, LPCTSTR strSplit, LPCTSTR strOutPdf) { static BYTE parms[] = VTS_BSTR VTS_BSTR VTS_BSTR ; InvokeHelper(0x1, DISPATCH_METHOD, VT_EMPTY, NULL, parms, strInPdf, strSplit, strOutPdf); } void Merge(LPCTSTR strInFiles, LPCTSTR strOutFile) { static BYTE parms[] = VTS_BSTR VTS_BSTR ; InvokeHelper(0x2, DISPATCH_METHOD, VT_EMPTY, NULL, parms, strInFiles, strOutFile); } void SetCode(LPCTSTR strCode) { static BYTE parms[] = VTS_BSTR ; InvokeHelper(0x13, DISPATCH_METHOD, VT_EMPTY, NULL, parms, strCode); } long GetNumberOfPages(LPCTSTR strFile, LPCTSTR strPasswd) { long result; static BYTE parms[] = VTS_BSTR VTS_BSTR ; InvokeHelper(0x14, DISPATCH_METHOD, VT_I4, (void*)&result, parms, strFile, strPasswd); return result; } // IPDFSplitMerge properties public: };
-
Du solltest die Datei nur einmal in Dein Projekt includen. Vermutlich hast Du in mehreren Header dateien auch diesen #include!
Such mal nach "Include Guards"
http://en.wikipedia.org/wiki/Include_guard
-
Danke Martin. Es ist wie du vermutet hast *schäm*