0

関数GradientFill()を使用すると、コンパイルエラーが発生します。私のネイティブWinAPIC++アプリケーションで

私は何が間違っているのですか?コードをコンパイルするにはどうすればよいですか?Microsoft Visual C ++2010Expressを使用しています。

私のプロジェクトでは、正しいライブラリmsimg32.libファイルをリンクしました。リンクされたすべてのファイルについては、以下を参照してください([プロジェクトのプロパティ]->[リンカー]->[入力]->[追加の依存関係])。

comctl32.lib; kernel32.lib; gdi32.lib; winspool.lib; msimg32.lib; comdlg32.lib; advapi32.lib; shell32.lib; ole32.lib; oleaut32.lib; uuid.lib;odbc32.lib;odbccp32。 lib;%(AdditionalDependencies)

コンパイルエラー:

1> c:\ users \ app.cpp(129):エラーC2064:項は6つの引数を取る関数に評価されません

コンパイルエラーの原因となるコード:

void TransparentCheckbox::verticalGradient(HDC hDC, const RECT& GradientFill, COLORREF rgbTop, COLORREF rgbBottom)
{
    GRADIENT_RECT gradientRect = { 0, 1 };
    TRIVERTEX triVertext[ 2 ] = {
        GradientFill.left - 1,
        GradientFill.top - 1,
        GetRValue(rgbTop) << 8,
        GetGValue(rgbTop) << 8,
        GetBValue(rgbTop) << 8,
        0x0000,                 
        GradientFill.right,
        GradientFill.bottom,
        GetRValue(rgbBottom) << 8,
        GetGValue(rgbBottom) << 8,
        GetBValue(rgbBottom) << 8,
        0x0000
    };

    // Below is line 129
    GradientFill(hDC, triVertext, 2, &gradientRect, 1, GRADIENT_FILL_RECT_V);
}
4

1 に答える 1

5

パラメータを宣言しました。GradientFillconstRECT&として、次にWindows GradientFillプロシージャを呼び出します。これにより、競合が発生します。パラメータの名前を変更するか、プロシージャ呼び出しのスコープを::GradientFillにすることができます。

于 2012-06-10T01:54:17.227 に答える