DuiLib在VS2012下的编译

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/chenxl00120/article/details/88023822

DuiLib开源界面库。下载DuiLib,https://github.com/duilib/duilib/,发现已经使用VS2013编译了。如果需要在VS2012使用,可使用2种方法。

一. 直接修改*.vcxproj

1.修改vcxproj文件

找一编辑器,如Notepad++。把 ToolsVersion=“12.0”,替换成 ToolsVersion=“4.0”
在这里插入图片描述

2.使用VS2012打开工程

在这里插入图片描述

3.修改对应Plamtform Toolset

修改项目所有的 Plamtform Toolset
在这里插入图片描述

3.编译报错 error C2065 ;代码加一回车,编译成功

1>Control\UIGifAnim.cpp(324): error C2065: ‘hFile’ : undeclared identifier
解决:
HANDLE hFile = ::CreateFile(pstrGifPath, GENERIC_READ, 前空一行
在这里插入图片描述编译成功!
在这里插入图片描述

二 使用cmake重建工程

1.下载CMake,地址:https://cmake.org/download/

2.打开cmake-gui.exe

选择对应目录,并选择配置
在这里插入图片描述在这里插入图片描述

3.修改 CMAKE_INSTALL_PREFIX,并生成代码

在这里插入图片描述

4.打开工程

在这里插入图片描述
在这里插入图片描述

4.修改Post-Build Event

在这里插入图片描述在这里插入图片描述编译

展开阅读全文

关于duilib编译问题

12-30

昨天配置好环境的,程序能编译通过运行,今天就不行了,相同的代码,电脑都没关过,一点变动都没有。。。。 rn错误为:1>MSVCRTD.lib(crtexe.obj) : error LNK2019: 无法解析的外部符号 _main,该符号在函数 ___tmainCRTStartup 中被引用rnrn代码如下rn#pragma oncern#include rnusing namespace DuiLib;rnrn#ifdef _DEBUGrn# ifdef _UNICODErn# pragma comment(lib, "DuiLib_ud.lib")rn# elsern# pragma comment(lib, "DuiLib_d.lib")rn# endifrn#elsern# ifdef _UNICODErn# pragma comment(lib, "DuiLib_u.lib")rn# elsern# pragma comment(lib, "DuiLib.lib")rn# endifrn#endifrnrnclass CDuiFrameWnd : public CWindowWnd, public INotifyUIrnrnpublic:rn virtual LPCTSTR GetWindowClassName() const return _T("DUIMainFrame"); rn virtual void Notify(TNotifyUI& msg) rnrn virtual LRESULT HandleMessage(UINT uMsg, WPARAM wParam, LPARAM lParam)rn rn LRESULT lRes = 0;rnrn if( uMsg == WM_CREATE ) rn rn CControlUI *pWnd = new CButtonUI;rn pWnd->SetText(_T("Hello World")); // 设置文字rn pWnd->SetBkColor(0xFF00FF00); // 设置背景色rnrn m_PaintManager.Init(m_hWnd);rn m_PaintManager.AttachDialog(pWnd);rn return lRes;rn rnrn if( m_PaintManager.MessageHandler(uMsg, wParam, lParam, lRes) ) rn rn return lRes;rn rnrn return __super::HandleMessage(uMsg, wParam, lParam);rn rnrnprotected:rn CPaintManagerUI m_PaintManager;rn;rnrnint APIENTRY _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow)rnrn CPaintManagerUI::SetInstance(hInstance);rnrn CDuiFrameWnd duiFrame;rn duiFrame.Create(NULL, _T("DUIWnd"), UI_WNDSTYLE_FRAME, WS_EX_WINDOWEDGE);rn duiFrame.ShowModal();rn return 0;rn 论坛

没有更多推荐了,返回首页