31. marts 2004 - 12:35Der er
2 kommentarer og 1 løsning
vektor og WINAPIs Polygon
Jeg har en vector<CPoint>, som indeholder nogle punkter jeg vil tegne en polygon udfra. ::Polygon-funktionen i WINAPI tager et LPPOINT som argument, men hvordan kan jeg bruge vektoren som argument i denne funktion? Jeg har prøvet nogle forskellige ting med iterators, men det virker ikke rigtig :(.. Min løsning lige nu er at kopiere vektoren over i et almindeligt array, men det synes jeg ikke er en særlig god løsning.
BOOL Polygon( HDC hdc, // handle to device context CONST POINT *lpPoints, // pointer to polygon's vertices int nCount // count of polygon's vertices );
???
Hvis ja, ser du ud til at du kan kalde den som flg.:
Ja, lige nu bruger jeg også en løsning, hvor jeg kopierer vectorens data over i en anden vector, som jeg så kan bruge direkte.
Der er nogle problemer med din kode.
1. std::vector<LPPOINT> pointList; <- En vector som indeholder pointere til punkter, hvor skal de rigtige punkter så opbevares?
2. LPPOINT pointArray[pointList.size()]; <- Sådan kan man ikke initializere et array. Størrelsen skal være kendt på forhånd. Man er nødt til at bruge new/delete.
1) De kunne fx. opbevares på heapen. Kender jo ikke din kode. 2) Korrekt. Det var et hurtigt eksempel :o)
Ser lige at du brugte std::vector<CPoint> - her vil de jo så være allokeret, og kan (som du vist også gør) kopieres til et array. Læste ikke dit spm. grundigt nok.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.