2010-08-30 36 views
2

嗨大家即時通訊使用winapi和我想做一個在三維正方形即時通訊定義的要點,以使他們與功能和我一直在嘗試3個功能,但我不能讓他們工作,我得到同樣的錯誤在他們3。 <不能將struct **轉換爲const POINT *作爲參數?

的錯誤說

In member function `void Cube::Show(void)':| 
    cannot convert `const Cube::Show()::POINT3D**' to `const POINT*' 
    for argument `2' to `BOOL Polygon(HDC__*, const POINT*, int)'| 

錯誤使用或者多邊形功能或polybezier或折線指向時,即時通訊

PLZ任何幫助將真正理解

void Cube::Show(void) 
{ 
    typedef struct point3d 
    { 
     double x; 
     double y; 
     double z; 
    } POINT3D; 

    POINT3D Face1[] = { 
    { 20.0,-20.0,-20.0}, 
    {-20.0,-20.0,-20.0}, 
    {-20.0, 20.0,-20.0}, 
    { 20.0, 20.0,-20.0} 
    }; 
    POINT3D Face2[] = { 
    {-20.0,-20.0,-20.0}, 
    {-20.0,-20.0, 20.0}, 
    {-20.0, 20.0, 20.0}, 
    {-20.0, 20.0,-20.0} 
    }; 
    POINT3D Face3[] = { 
    { 20.0, 20.0, 20.0}, 
    {-20.0, 20.0, 20.0}, 
    {-20.0,-20.0, 20.0}, 
    { 20.0,-20.0, 20.0} 
    }; 
    POINT3D Face4[] = { 
    { 20.0,-20.0, 20.0}, 
    { 20.0,-20.0,-20.0}, 
    { 20.0, 20.0,-20.0}, 
    { 20.0, 20.0, 20.0} 
    }; 
    POINT3D Face5[] = { 
    { 20.0,-20.0, 20.0}, 
    {-20.0,-20.0, 20.0}, 
    {-20.0,-20.0,-20.0}, 
    { 20.0,-20.0,-20.0} 
    }; 
    POINT3D Face6[] = { 
    { 20.0, 20.0,-20.0}, 
    {-20.0, 20.0,-20.0}, 
    {-20.0, 20.0, 20.0}, 
    { 20.0, 20.0, 20.0} 
    }; 

    POINT3D *Faces[] = {Face1,Face2,Face3,Face4,Face5,Face6}; 
Rectangle(this->_hdc,this->DrawArea.left,this->DrawArea.top,this->DrawArea.right,this->DrawArea.bottom); 

    Polygon(_hdc,Faces,6); 
    /*BeginPath(_hdc); 
    PolyBezier(Faces,6); 
    EndPath(_hdc);*/ 
    //Polyline(_hdc,Faces,6); 
} 
+0

我們需要比這更多的信息。什麼是_hdc?以及Rectangle()和Polygon()如何定義?另外,我非常確定'POINT3D * Faces [] = {Face1,Face2,Face3,Face4,Face5,Face6}'是無效的語法。你爲什麼使用一個結構來代替你的點而不是類? – Falmarri 2010-08-30 03:29:05

+0

呵呵,我認爲結構只是更容易爲這種情況下,但我也可以使用該和多邊形和矩形是winapi函數已經宣佈我沒有讓他們:S和HDC以及它的HDC的WINAPI – Makenshi 2010-08-30 03:31:26

+0

以及我可以只使用窗戶。 h庫,所以我不知道是否回答你的問題,所以即時通訊嘗試製作3d-2d的東西lol – Makenshi 2010-08-30 03:35:24

回答

3

你傳入POINT3D的POINT版本,而不是來自全局命名空間的POINT。這些結構是相同的只是施放。另外,你傳入的數組不是數組。

所以我建議你revist的API,以瞭解它需要什麼 - 像

Polygon(_hdc,((POINT *) (Faces[0])),6) perhaps 
+2

只是這樣工作,感謝你非常嚴重! – Makenshi 2010-08-30 03:29:10

+0

不客氣。 – 2010-08-30 03:37:00

0

Polygon和你想的其他功能2D GDI函數。它們並非真正用於表示3D圖形。當然,使用GDI可以獲得所需的效果,但如果您要做大量的3D工作,它看起來就像是一個錯誤的工具。

您可能想看看DirectX或其他設計用於處理3D圖像的框架。

+0

是的,這將是很容易,但它的作業,所以我不能使用opengl或directx>的一部分。< – Makenshi 2010-08-30 03:37:57

相關問題