Struct aus einer Memberfunktion zurückgeben
-
Hallo,
ich möchte ein Struct aus einer Memberfunktiuon am Stück zurückgeben. Wenn ich nachfolgenden Code benutze bekomme ich beim compilieren eine Fehlermeldung. Weis jemand woran das liegt ?
class CMathConv { public: struct DataWord* Get16BitDec(int value); CMathConv(); virtual ~CMathConv(); private: struct DataWord* m_ptr16BitValue; }; DataWord* CMathConv::Get16BitDec(int value) { //struct DataWord result; m_ptr16BitValue->nByteH = 0; m_ptr16BitValue->nByteL = 0; // Wert kleiner wie 16 Bit if((value <= 65535) && (value >= 0)) { // Low-Byte verunden m_ptr16BitValue->nByteL = value & 255; // '0000 0000 1111 1111' // High-Byte verunden m_ptr16BitValue->nByteH = value & 65280; // '1111 1111 0000 0000' } else { if(value <= 65535) AfxMessageBox("Der übergebene Wert ist grösser wie 16 Bit", MB_ICONERROR); if(value >= 0) AfxMessageBox("Der übergebene Wert ist negativ", MB_ICONERROR); } return *m_ptr16BitValue; }
-
Hallo,
das Problem ist du musst einen Zeiger (laut Methodendefinition) zurückgeben und nicht den Wert an auf den gezeigt wird.
also...
return m_p.... und nicht return *m_p...
-
Danke so funzt es :-))
und wie defieniere ich den Aufruf der Funktion ? Folgender Code funzt nicht.
... struct DataWord* ptrValue; CMathConv math; ptrValue = math.Get16BitDec(800); // geht nicht :-((( ...
-
Poste mal mehr von deinem Code, bitte.
-
Aloha,
wichtig wäre vor allen Dingen an welcher Stelle das Proggi wegknallt. Setze mal nen Haltepunkt und gehe Schritt für Schritt durch (auch durch die Funktion !!! ).
Grüße
BOA