當我使用函數GradientFill()時,出現編譯錯誤;在我的原生WinAPI C++應用程序中當我使用GradientFill()函數時無法編譯代碼
我在做什麼錯?我怎樣才能讓我的代碼編譯?我正在使用Microsoft Visual C++ 2010 Express。
在我的項目中,我鏈接了正確的庫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): error C2064: term does not evaluate to a function taking 6 arguments
導致編譯錯誤代碼:
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);
}
謝謝。我覺得這樣一個白癡大聲笑,我認爲這是一些主要的鏈接器錯誤,不只是參數/函數名稱衝突哈哈。 MVC++需要更多的信息編譯錯誤描述,儘管 –
@JakeM,GCC對我來說足夠豐富。這就像'GradientFill不能用作函數'一樣。我想,一旦你看到它幾次,不管錯誤消息的詳細程度如何,你都會馬上識別它。 – chris