2016-06-23 8 views
0

私はあなたに私の問題に関する行しか与えません。これはコンパイルできない理由を私は知らない。CreatePolygonRgnとconst POINT *

POINT ptVertex[5]; 

ptVertex[0].x = 180; 
ptVertex[0].y = 80; 
ptVertex[1].x = 100; 
ptVertex[1].y = 160; 
ptVertex[2].x = 120; 
ptVertex[2].y = 260; 
ptVertex[3].x = 240; 
ptVertex[3].y = 260; 
ptVertex[4].x = 260; 
ptVertex[4].y = 160; 

CreatePolygonRgn(&ptVertex, 5, ALTERNATE) 

を私はDEVC++ TDM GCCの64-ビットでコンパイルし、エラーがある:

変換することはできません「POINT()[5] {別名tagPOINT( '引数は 'CONST POINTの* {別名のconst tagPOINT *}「から')[5]} 1 HRGN __ * CreatePolygonRgn(定数ポイント*、int型、int型' から '')

誰かが私を見つけることができれば間違い。ありがとう。

+1

は[MCVE]を提供します。そして2つの異なる**言語CまたはC++のうちの1つを選んでください! – Olaf

+0

関数 'CreatePolygonRgn'の署名は何ですか?つまりその宣言は何ですか? – s7amuser

+0

これは署名です。WINGDIAPI HRGN WINAPI CreatePolygonRgn(CONST POINT * pptl、int cPoint、int iMode) – user3511595

答えて

3

CreatePolygonRgn()は、配列内の最初のPOINTへのポインタとその配列内の項目の数を想定しています。しかし、最初の要素ではなく配列自体へのポインタを渡しています。 &演算子を適用する前に、配列の最初の要素に

  1. 指数:

    CreatePolygonRgn(&ptVertex[0], 5, ALTERNATE) 
    
  2. 静的アレイへのポインタに分解することができ、単に、完全&オペレータを削除する次のいずれかをすることができその最初の要素:

    CreatePolygonRgn(ptVertex, 5, ALTERNATE) 
    
0

5つの配列のアドレスを渡していますが、関数には要素のアドレスと長さが必要です。

関連する問題