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 预定义宏,否则会发生链接器找不到符号的错误

字符集设置

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

解决完毕截图

2 thoughts on “Duilib 初次配置的翻车记录 Add Yours?

发表评论

电子邮件地址不会被公开。 必填项已用*标注