Error C2664...



  • Hallo zusammen!

    Bei der folgenden Anweisung:

    pDC->Ellipse(pDoc->m_ellipseArray[y][i]);
    

    tritt dieser Fehler auf:

    error C2664: 'BOOL CDC::Ellipse(LPCRECT)' : Konvertierung des Parameters 1 von 'tagRECT' in 'LPCRECT' nicht möglich

    Ich habe bereits in der MSND Library nachgeschaut, aber auch nichts schlaues gefunden.

    Das zweidimensionale Array wir hier gefüllt:

    m_ellipseArray[y][i] = CRect(n1, n2, n3, n4);
    

    Das ganze Programm funzt bei Verwendung eines normalen Arrays, mit

    pDC->Ellipse(LPCRECT(pDoc->m_ellipseArray[y][i]));
    

    habe ichs auch schon versucht...

    Hoffentlich kann mir jemand weiterhelfen, danke jetzt schon!!



  • pDC->Ellipse(&pDoc->m_ellipseArray[y][i]);
    


  • Danke für deine Antwort...

    Doch jetzt tritt ein Laufzeitfehler auf:

    Unbehandelte Ausnahme bei 0x778a144b in gaga.exe: Benutzerhaltepunkt.

    pDC->Ellipse(&pDoc->m_ellipseArray[y][i]);

    wie kann ich das bei der obigen Codezeile verstehen? Ich denke das & bewirkt die Adresse der Zeigerposition, oder lieg ich da falsch? Ich programmiere erst eine Woche mit C++, darum mein kleines Wissen 🙂

    Greeetz



  • Oder eine andere Frage:

    Wieso funktioniert

    pDC->Ellipse(pDoc->m_ellipseArray[i]);
    

    aber

    pDC->Ellipse(pDoc->m_ellipseArray[y][i]);
    

    nicht, da in beiden Arrays Objekte vom gleichen Typ (CRect) vorhanden sind, sollte die zweite Variante ja eigentlich auch funktionieren! 😡



  • Befass dich mal mit Zeigern.

    wenn foo ein int** ist, dann ist foo[i] ein int* und foo[i][j] ein int

    Es funktioniert zwar, syntaktisch - ist aber semantisch (wahrscheinlich) falsch.


Anmelden zum Antworten