DuiLib使用教程之二---测试工程
来源:互联网 发布:linux系统能玩游戏吗 编辑:程序博客网 时间:2024/05/22 04:31
DuiLib测试工程
以下内容为原创,欢迎转载,转载请注明
来自试着不呼吸的博客:http://blog.csdn.net/haiqiang_softwo/article/details/21485283
通过上节(http://blog.csdn.net/haiqiang_softwo/article/details/21485241) 我们已经学会了,如何编译DuiLib生成相应的DLL,从这节起,我们将创建一个测试工程,用最简单的方法来介绍,如何使用这些DLL
创建TestDuiLib工程, 选择Win32项目
然后选择 “Windows应用程序”
生成新的工程后,我们先编译一下,会在TestDuiLib目录下生成Debug目录 和TestDuiLib.exe
将以下8个文件复制到TestDuiLib目录下
如果找不到xxx.lib文件,请将DuiLib的4个 “解决方案配置” 都 重新生成一遍
然后创建TestDuiLib.xml至Debug目录
TestDuiLib.xml的创建方法:
打开 “记事本”,输入以后内容
<?xml version="1.0" encoding="UTF-8"?>
<Window mininfo="200,360" size="360,600">
<VerticalLayout inset="10,6,10,6" bkcolor="#FFEA679F" colorhsl="true" borderround="18,18">
</VerticalLayout>
</Window>
然后保存成UTF-8格式 至Debug目录
在TestDuiLib目录创建 DuiLib目录用来存放.h文件
将.h文件复制到TestDuiLib\DuiLib目录
然后 删除TestDuiLib.cpp文件里面 #include “TestDuiLib.h” 后面所有的代码
用以后代码替换
- class CFrameWindowWnd : public CWindowWnd, public INotifyUI
- {
- public:
- CFrameWindowWnd() { };
- LPCTSTR GetWindowClassName() const { return _T("UIMainFrame"); };
- UINT GetClassStyle() const { return UI_CLASSSTYLE_FRAME | CS_DBLCLKS; };
- void OnFinalMessage(HWND /*hWnd*/) { delete this; };
- void Init() { }
- void Notify(TNotifyUI& msg)
- {
- }
- LRESULT HandleMessage(UINT uMsg, WPARAM wParam, LPARAM lParam)
- {
- if( uMsg == WM_CREATE ) {
- m_pm.Init(m_hWnd);
- CDialogBuilder builder;
- CControlUI* pRoot = builder.Create(_T("TestDuiLib.xml"), (UINT)0, NULL, &m_pm);
- ASSERT(pRoot && "Failed to parse XML");
- m_pm.AttachDialog(pRoot);
- m_pm.AddNotifier(this);
- Init();
- return 0;
- }
- else if( uMsg == WM_DESTROY ) {
- ::PostQuitMessage(0L);
- }
- else if( uMsg == WM_ERASEBKGND ) {
- return 1;
- }
- LRESULT lRes = 0;
- if( m_pm.MessageHandler(uMsg, wParam, lParam, lRes) ) return lRes;
- return CWindowWnd::HandleMessage(uMsg, wParam, lParam);
- }
- public:
- CPaintManagerUI m_pm;
- };
- int APIENTRY _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow)
- {
- CPaintManagerUI::SetInstance(hInstance);
- CPaintManagerUI::SetResourcePath(CPaintManagerUI::GetInstancePath());
- HRESULT Hr = ::CoInitialize(NULL);
- if( FAILED(Hr) ) return 0;
- CFrameWindowWnd* pFrame = new CFrameWindowWnd();
- if( pFrame == NULL ) return 0;
- pFrame->Create(NULL, _T("TestDuiLib测试"), UI_WNDSTYLE_FRAME, WS_EX_WINDOWEDGE);
- pFrame->CenterWindow();
- pFrame->ShowWindow(true);
- CPaintManagerUI::MessageLoop();
- ::CoUninitialize();
- return 0;
- }
然后将以下代码 复制到stdafx.h
- #include "..\DuiLib\UIlib.h"
- using namespace DuiLib;
- #ifdef _DEBUG
- # ifdef _UNICODE
- # pragma comment(lib, "DuiLib_ud.lib")
- # else
- # pragma comment(lib, "DuiLib_d.lib")
- # endif
- #else
- # ifdef _UNICODE
- # pragma comment(lib, "DuiLib_u.lib")
- # else
- # pragma comment(lib, "DuiLib.lib")
- # endif
- #endif
现在我们开始编译,会发现提示以下错误
这是因为DuiLib小组在开发的时候,将#include <olectl.h> 语句放在了stdafx.h文件里面,没有放在uirichedit.h里面导致的,解决这个问题,我们可以将这个语句 放在我们的stdafx.h文件里了,注意要在#include “..\DuiLib\UIlib.h”上面
然后编译,就不会出现错误了
直接运行,我们就可以看到简单的测试程序了
如果想双击 TestDuiLib.exe运行,请将xxxx.dll4个文件复制到Debu目录
Demo我以上传到csdn 大家可以通过 http://download.csdn.net/detail/haiqiang_softwo/7062501 下载
- DuiLib使用教程之二---测试工程
- DuiLib使用教程之二---测试工程
- duilib教程之duilib入门简明教程
- [DuiLib教程2]DuiLib第一个测试Demo的注释
- duilib教程之duilib入门简明教程 -- 界面布局(9)
- duilib进阶教程 -- 在duilib中使用MFC (2)
- duilib进阶教程 -- 在MFC中使用duilib (1)
- Android Studio 使用教程(二十五)之运行Android Studio工程
- DuiLib使用教程之一---环境配置
- duilib教程
- DuiLib帮助文档篇之二UIBase
- DuiLib帮助文档篇之二UIBase
- duilib 入门二之 HorizontalLayout与VerticalLayout
- duilib 入门二之 HorizontalLayout与VerticalLayout
- nant的使用(二)-基本原理之工程
- [DuiLib教程2]第一个测试Demo的配置
- Android gradle使用教程<二> 引用android-library工程
- 渗透测试之MagicTree使用教程
- Tomcat内存设置详解
- Ubuntu 14.04 LTS + MatlabR2012a 安装
- Cocos2d-x设计模式发掘之九:委托模式
- 10个有用的Linux命令面试问题及答案
- HM代码中关于变量、函数的命名规则
- DuiLib使用教程之二---测试工程
- lightoj 1021 (数位DP)
- Unity3D-RPG项目实战(2):使用SVN管理Unity项目
- 辛星深入分析vim的自动补全功能以及vim的映射
- Test Job Example- Slurm
- 杭电 2159 FATE(二维费用背包问题)
- adb devices一直显示一个offline的设备号
- Win7下安装苹果MAC OS X Mountain Lion 双系统详细图文教程
- Ubuntu 解压中文乱码问题