阿龙咖啡 /

Duilib 初次配置的翻车记录

使用 vcpkg 安装 duilib 库

git clone https://github.com/Microsoft/vcpkg.git
cd vcpkg
.\bootstrap-vcpkg.bat
.\vcpkg integrate install
.\vcpkg install duilib

编写 Demo 代码

#include <DuiLib/UIlib.h>
using namespace DuiLib;

class CDuiFrameWnd : public CWindowWnd, public INotifyUI {
public:
    virtual LPCTSTR GetWindowClassName() const { return _T("DUIMainFrame"); }
    virtual void    Notify(TNotifyUI& msg) {}

    virtual LRESULT HandleMessage(UINT uMsg, WPARAM wParam, LPARAM lParam)
    {
        LRESULT lRes = 0;

        if (uMsg == WM_CREATE)
        {
            CControlUI* pWnd = new CButtonUI;
            pWnd->SetText(_T("Hello World"));   // 设置文字
            pWnd->SetBkColor(0xFF00FF00);       // 设置背景色

            m_PaintManager.Init(m_hWnd);
            m_PaintManager.AttachDialog(pWnd);
            return lRes;
        }

        if (m_PaintManager.MessageHandler(uMsg, wParam, lParam, lRes))
        {
            return lRes;
        }

        return __super::HandleMessage(uMsg, wParam, lParam);
    }

protected:
    CPaintManagerUI m_PaintManager;
};

int APIENTRY _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow)
{
    CPaintManagerUI::SetInstance(hInstance);

    CDuiFrameWnd duiFrame;
    duiFrame.Create(NULL, _T("DUIWnd"), UI_WNDSTYLE_FRAME, WS_EX_WINDOWEDGE);
    duiFrame.ShowModal();
    return 0;
}

我在编译时遇到的两个问题

预定义宏

添加 ULIB_STATIC 预定义宏,否则会发生链接器找不到符号的错误

image.png

字符集设置

确保此处设置为 “ 使用多字节字符集 ”,否则使用 _T 宏包装参数后,调用某些带字符串参数的函数,会出现链接器找不到符号的错误

image-1.png

解决完毕截图

image-2.png

留下一条评论

暂无评论