使用windows.h时未定义的引用

时间:2013-12-14 02:25:40

标签: c++

我想在控制台应用程序中使用ChooseColor函数。 http://msdn.microsoft.com/en-us/library/windows/desktop/ms646912(v=vs.85).aspx

我正在使用他们的示例代码来测试它,并且我已经包含了像他们告诉我的windows.h,但是我得到了错误:

undefined reference to 'ChooseColorA@4'
undefined reference to 'CreateSolidBrush@4'

我正在使用Code :: Blocks,我尝试过包含“Windows.h”和“Commdlg.h”,但没有运气。我是否需要使用链接器设置才能使用windows.h?我的代码:

#include <windows.h>

int main()
{
    CHOOSECOLOR cc;                 // common dialog box structure
    static COLORREF acrCustClr[16]; // array of custom colors
    HWND hwnd;                      // owner window
    HBRUSH hbrush;                  // brush handle
    static DWORD rgbCurrent;        // initial color selection

    // Initialize CHOOSECOLOR
    ZeroMemory(&cc, sizeof(cc));
    cc.lStructSize = sizeof(cc);
    cc.hwndOwner = hwnd;
    cc.lpCustColors = (LPDWORD) acrCustClr;
    cc.rgbResult = rgbCurrent;
    cc.Flags = CC_FULLOPEN | CC_RGBINIT;

    if (ChooseColor(&cc)==TRUE)
    {
        hbrush = CreateSolidBrush(cc.rgbResult);
        rgbCurrent = cc.rgbResult;
    }
    return 0;
}

1 个答案:

答案 0 :(得分:1)

您需要将gdi32库添加到项目中,以便链接,而不仅仅是包含。

请参阅:How do I link to a library with Code::Blocks?