博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
运行chrome ui
阅读量:2400 次
发布时间:2019-05-10

本文共 5210 字,大约阅读时间需要 17 分钟。

最近看了一下chrome UI 学习笔记(),觉得chrome的ui架构不错,将很多基本控件进行了封装,这样写出来的ui就可以运行在windows,linux,mac机上,但其比qt和wxwidget轻量化,应该可以抽离出来,单独来作为一个简易的图形库。另外,chrome对多语言和皮肤等处理都很值得参考。在这里面学到了一个技巧是,设置完cygwin的环境后就可以在bat里面运行linux的相关命令了():

:: Put cygwin in the path

call %SolutionDir%/../third_party/cygwin/setup_env.bat
:: Load version digits as environment variables
cat %SolutionDir%/VERSION | sed "s//(.*/)/set /1/" > %VarsBat%

看完了chrome UI 学习笔记,就想自己搭建环境来跑跑相关的例子,但将pdf的例子拷贝下来后,设置好编译环境,编过去了,却发现运行不起来。根据中断点的地方,可以看出是相关环境没有初始化,但该初始化那些环境呢?网上也有人问,作者的回答是:

1.多个线程的启动和绑定
2.PathService初始化
3.资源文件初始化
4.国际化判断和加载
5.如果在Windows 平台下,需要初始化的一些关于wtl和com的模块。

但该怎么样初始化作者没讲?看来只能自己去找了。参考d:/project/chrome/src/src/chrome/app/chrome_dll_main.cc这个文件,同时参考,经过几次尝试后总算跑起来了,下面就说一下对应的代码:

1.多个线程的启动和绑定  可以不需要

2.PathService初始化

app::RegisterPathProvider();

3 4.资源文件初始化和国际化判断和加载

bool icu_result = icu_util::Initialize();

std::string app_locale = ResourceBundle::InitSharedInstance("en-US");

5.如果在Windows 平台下,需要初始化的一些关于wtl和com的模块。

#define _WTL_USE_CSTRING

#include        // base ATL classes

#include         // base WTL classes
extern CAppModule _Module; // WTL version of CComModule
#include         // ATL GUI classes
#include       // WTL frame window classes
#include        // WTL utility classes like CString
#include       // WTL enhanced msg map macros

OleInitialize(NULL);

运行的结果如图:

为了方便大家自己搭建,现给出完整的测试代码:

 

 

 

 

转载地址:http://zmiob.baihongyu.com/

你可能感兴趣的文章
安装J2SE 1.3.1 for Linux的方法(转)
查看>>
Apche日志系列(5):高级技术(转)
查看>>
谈谈数据从sql server数据库导入mysql数据库的体验(转)
查看>>
解读startx(转)
查看>>
RMAN配置DATAGUARD完整案例(主库基于ASM存储)
查看>>
Oracle分区表
查看>>
关联查询子查询效率简单比照
查看>>
Enterprise Manager之oracle性能与管理
查看>>
linux启动盘制作
查看>>
struts2 标签的使用之一 s:if,siterator使用
查看>>
11gR2批量操作EM性能监控报表集
查看>>
[转帖]广交会使用频率最高的英语
查看>>
职业经理人影响力自检手册(二)
查看>>
企业如何提好自己的内部需求?
查看>>
[分享]ERP实施工程师笔试题目
查看>>
看板管理概述(zt)
查看>>
IT审计中应注意的几个问题(zt)
查看>>
最美的七十个英语单词
查看>>
中国企业需要精益求精 (zt)
查看>>
第四章 计划工作概述
查看>>