- 博客(34)
- 资源 (1)
- 收藏
- 关注
转载 如何设置线程名
To set a thread name in your program, use the SetThreadName function, as shown in the following code example. Note that the thread name is copied to the thread so that the memory for the threadName pa...
2018-05-09 11:19:14
326
原创 react native windows开发环境
最近项目尝试使用react native加快研发速度,react native的资料比较多,但大都是android与iOS,windows方面的资料很少。这种现象也比较正常,目前windows方面的需求局限于企业,视频与游戏方面,一般的app会略过PC平台。此外,react native的官方platform中没有添加windows的支持。微软在这方面支持了windows平台。github: ht...
2018-04-23 21:46:26
608
原创 创建自己的PDB Server
新来组里半年,今天在发版验证的时候出现崩溃,在崩溃dump的时候寻找PDB,发现目前组里已经建立了一套自动获取PDB和dll/EXE等的符号服务器,具体来说就是可以像微软的符号服务器一样自动搜索加载。在面对目前敏捷开发与CI流程自动比较普遍的环境下,如果搭建一套工程的符号服务器,那么无疑给我们定位问题方便许多。废话说多了,那么具体怎么来做:下载 Debugging Tools for Window...
2018-03-29 11:12:14
1105
原创 利用CImage合并两张图片后保存
今天同事那边遇到了一个问题,希望将一个不透明的图片,贴在一透明的PNG上。想着应该比较简单,直接贴过去就可以了。在实践过程中,发现图片贴过去后,PNG的Alpha通道会丢失。经过实验,发现是CImage的Attach与Detach接口造成。CImage类提供了GetDC的接口,使用自带的GetDC接口解决了丢失的问题。但是贴过去后,不透明的图片区域变成了完全透明。经过排查发现是两张
2017-09-06 20:13:24
3706
原创 旋转裁剪算法
首先看一下QQ影像的旋转裁剪功能中的对比其中裁剪决定了旋转后抽离其中的区域,并保持了原先的宽高比。经过研究,转化为计算中间等比例矩形的宽高,即(x1,y1)(x2,y2)的值于是通过计算 int mod_angle = angle % 90; RGBQUAD color = { 255, 255, 255, 0 };
2017-08-31 18:40:57
735
原创 FreeImage Convert Btween FIBITMAP and HBITMAP
FreeImage的官方FAQ中提及了,FIBITMAP与HBITMAP的转换,在这里做一下搬运工FIBITMAP* FImageTool::ConvertHbimapToFibitmap(HBITMAP hbmp){ FIBITMAP *dib = NULL; if(hbmp) { BITMAP bm = { 0 }; int ret = G
2017-08-29 20:42:27
1052
原创 使窗口具备拖动到边界自动最大化/还原的特性
从win7开始,windows的特性中具备了拖动窗口到屏幕边界时最大化,还原,或者占据半个工作区的功能,如果希望自己的窗口具体这种特性,那么需要在窗口属性中添加 WS_BORDERG与WS_THICKFRAME,但是对于DirectUI绘制的一些窗口时,在窗口创建时就添加WS_THICKFRAME会造成窗口的边框由系统绘制,不符合设计效果解决方法是
2017-08-23 17:43:22
1310
原创 马赛克算法
工程中需要简单的马赛克算法模糊,看到网上的一些易读性不强,所以按自己的理解写了一个,调用了FreeImage的API,不过修改为直接操作BITMAP即可.针对边界还没有完善,后面会再回头完善一下
2017-08-21 15:46:09
1462
翻译 为什么C++的SEH不提供finally
因为C++支持一种更棒的方法:"resource acquisition is initialization"技术。基本思想是使用局部对象代理资源,局部变量在析构时将会自动释放资源。用这种方式,这样程序开发人员将不会遗忘资源的释放。Because C++ supports an alternative that is almost always better: The “
2017-08-01 21:00:39
230
原创 Dynamic-Link Library Search Order(dll搜索顺序)
在项目从VS2010升级到VS2015过程中,遇到了一些dll的依赖问题,升级程序在appdata目录中,希望引用安装目录中的运行时库以及libcurl等功能依赖组件。复习了一下这块的资料作一下总结:首先是SafeDllSearchMode的概念,是否开启的标志位于HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manag
2017-06-20 18:08:18
859
转载 有限状态机FSM详解及其实现
有限状态机,也称为 FSM(Finite State Machine) ,其在任意时刻都处于有限状态集合中的某一状态。当其获得一个输入字符 时,将从 当前状态 转换到 另一个状态 ,或者仍然保持在当前状态 。任何一个FSM都可以用状态转换图来描述,图中的节点表示FSM中的一个状态,有向加权边表示输入字符时状态的变化。如果图中不存在与当前状态与输入字符对应的有向边,则FSM将进入“消亡状
2017-06-07 18:11:26
2345
原创 固定到开始屏幕 Pin To StartScreen
win10的回归的开始菜单整合了xp的开始菜单与win8中的Metro磁贴,个人非常喜欢这种设计下午老大发现我们的程序在win10开始菜单的磁贴处并没有磁贴生成,于是搜了一下这方面的资料了解了一下win10的开始菜单中几个概念,其中左半部分为"StartMenu"右半部分为"StartScreen",而并非先前认为的Menu将自己的App钉在这里的功能描述为”Pin App
2017-04-17 18:11:00
5186
原创 VS2015输入中文显示?
更新了输入法后,出现了打开vs2015时无法输入中文的情况,显示为?,但是原先的中文注释却能正常显示,并且从html上copy过去的中文能够显示,尝试改过页面的字符编码没有解决。上网查资料,发现这个问题是由于visual assist这个组件引起的。于是有以下几种解决办法,推荐2。 1、禁用visual assist 2、将所有输入法都删除,或者是保留一种中文输入法。此时输入中文就可以正
2017-04-07 11:56:28
1469
原创 Chrome线程模型中的Modal窗口返回值问题
项目中使用了Duilib和Chrome中抽离的base线程模型来进行开发,在使用我们简单封闭的时,发现偶尔会出现DoDodal的返回值并非用户的点击项,跟踪后发现,base自己的消息循环(MessageLoop)处理时会有概率处理掉原生的消息队列消息WM_CLOSE,造成返回值是默认值,而非用户点击时传递进wParam. 这个发生的情况是,WM_CLOSE消息恰好被base的Mes
2017-04-05 17:27:56
852
1
原创 VisualStudio中的调试命令参数中%的转义问题
在调试中遇到一个问题,VS中调试命令参数中包含有%号时,实际运行起来后的启动命令行会显示为乱码,如实际显示为:而如果通过命令行直接调用则显示正常实际显示为:经过尝试发现VS调试中的命令参数在部分情况下会进行UrlDecode,如原始字符为:%abcUrlEncode:%25abc当我们在VS命令参数中填写 %25a
2017-02-09 17:35:01
1230
1
原创 分享一个性能统计的简单封装类
在查找问题,优化性能时,不免用到GetTickCount来统计函数耗时。不断的DWORD tick_beg = GetTickCount();DWORD tick_end = GetTickCount();DWORD tick_span = tick_end - tick_beg;着实麻烦简单地封装了一下。主要提供的接口是 AutoTick tick(__FUNCT
2017-02-08 18:29:36
515
原创 Duilib中带有权重的灵活控件排列实现(一)
在开发播放器软件过程中,因为窗口的大小是可变的,为了让控制栏部分的控件(播放,上一集,下一集,全屏,字幕等)适应窗口的尺寸的变化而显示隐藏,产品经理会定义一系列的规则,好让在任何时候都最核心的功能提供给用户使先列一下产品经理给予的需求:两边往中间缩,保证左侧LOGO和右侧X最优先显示。顶部隐藏优先级:搜索栏,换肤,意见反馈,播放记录,最小化,最大化底部隐藏优先级:全屏,画质
2017-02-08 17:49:15
2380
原创 RichEdit读取rtf格式
接到需求,需要在播放器播放失败时显示播放失败的错误原因,引导用户自己解决,减轻客服压力,在看到产品设计挺长的原因说明后,考虑维护简单,避免使用xml配置中直接写死的方式来解决,经过权衡后通过RichEdit读取rtf文件的方式来保留格式,并且易于后期维护
2017-01-23 16:02:05
3463
转载 std::map的insert和下标[]访问
在map中插入元素改变map中的条目非常简单,因为map类已经对[]操作符进行了重载enumMap[1] = "One";enumMap[2] = "Two";.....这样非常直观,但存在一个性能的问题。插入2时,先在enumMap中查找主键为2的项,没发现,然后将一个新的对象插入enumMap,键是2,值是一个空字符串,插入完成后,将字符串赋为"Two"; 该方法会将每个值
2015-01-04 16:35:10
759
转载 在Win32 Window应用程序中启用Console输出
在某些时候,我们可能需要在Win32窗口应用程序中打开控制台窗口,打印一些消息,或者作为当前程序的另外一个人机交互界面,或者为了帮助调试程序。为了达到这种效果,需要了解函数AllocConsole和C-Runtime的freopen函数。AllocConsole函数会为当前的窗口程序申请一个Console窗口。这是MSDN上对AllocConsole的介绍:AllocConsole
2014-09-05 16:19:22
994
原创 “Pragma:No-cache”标记可能无法防止页面被缓存
在IE中,在html头中设置了 元标记时,Web 页可能仍缓存在 Temporary Internet Files 文件夹中。
2014-07-23 12:14:45
6389
原创 InstallShield基本操作
(仅供内部使用) 版 本 号:V0.1 编 制: 审 核: 修订记录 日期版本号描述作者2012-9-260.1
2014-07-09 15:06:24
1542
转载 C++ 多继承和虚继承的内存布局
转自:http://www.oschina.net/translate/cpp-virtual-inheritance警告. 本文有点技术难度,需要读者了解C++和一些汇编语言知识。 在本文中,我们解释由gcc编译器实现多继承和虚继承的对象的布局。虽然在理想的C++程序中不需要知道这些编译器内部细节,但不幸的是多重继承(特别是虚拟继承)的实现方式有各种各样的
2014-06-26 09:22:41
654
原创 Sqlite的AUTO_INCREMENT问题
http://stackoverflow.com/questions/508627/auto-increment-in-sqlite-problem-with-python
2014-06-20 13:42:16
2397
2
转载 窗口之间的主从关系与Z-Order
说明:这是本人2008年写的一篇旧文,从未公开发表过。其中除了一小段描述Window Mobile平台的内容已过时,大部分内容对于从事Win32开发的程序员还是很有参考价值的,也是对自己从事Windows开发工作的一个总结,欢迎指正。转载请注明:http://www.cnblogs.com/dhatbj/原创。 范围(Scope) 讨论Windows操作系统中窗口之间的关系
2014-06-19 16:05:55
1038
原创 由Bug延伸的一点有关“兼容与重构”思考
今天在解决Bug00174317时有一点思考,BUG是个小问题,就是在2.5.2的时候新增了需求,在码率为64K纯音频会议时,会议信息框中的清晰度显示为:“纯音频(64K)”,而不是“标清(64K)”,跟踪检查了一下原因,原因是平台传过来的结构体中有关清晰度的描述只有 u8 byConfMode;//会议模式:0-高清、1-标清、2-流畅、3-自定义 四种类型,没
2014-02-18 19:00:54
693
原创 基于消息,事件驱动的点滴感悟
在入门windows编程时,我们总会听到这么一句:Message Based,Event Driven。今天在解决Bug00173911 TL2.6:合并窗口,滑动鼠标使得右上角的收缩按钮展开,拖动窗口至最大化,关闭按钮显示为还原按钮 时有点感触。在解决该bug后,调试过程中发现,窗口的最大化和还原状态与右上角的Button状态偶尔对应不上,后面跟踪发现因为win7系统有针对桌面窗口自动排
2014-02-14 14:45:28
1313
1
转载 sqlite3中BLOB数据类型存储大对象运用示例
1:常用接口 个人比较喜欢sqlite, 使用最方便,唯一的准备工作是下载250K的源;而且作者很热心,有问必答。 以下演示一下使用sqlite的步骤,先创建一个数据库,然后查询其中的内容。2个重要结构体和5个主要函数: sqlite3 *pdb, 数据库句柄,跟文件句柄FILE很类似 sqlite3_stmt *stmt, 这
2014-02-14 14:26:27
1877
转载 OCX控件的注册卸载,以及判断是否注册
方法一:在dos或Windows命令行下运行:regsvr32 ocxname.ocx 注册示例:regsvr32 netshare.ocx //注册netshare.ocx控件regsvr32 /u netshare.ocx //解除netshare.ocx控件的注册如果netshare.ocx文件不在system目录时,还必须在文件名前加上完整的路径。除了r
2013-11-04 16:59:46
689
转载 SetTimer的使用问题
SetTimer的函数原型如下:UINT_PTR SetTimer( HWND hWnd, UINT_PTR nIDEvent, UINT uElapse, TIMERPROC lpTimerFunc ) ; 其中 hWnd是和timer关联的窗口句柄,此窗口必须为调用SetTimer的线程所有;如果hWnd为NULL,没有窗口和timer相关联并且nIDEvent参数被忽略
2013-07-08 18:33:44
684
转载 NAT原理与NAT穿越
最近在看东西的时候发现很多网络程序中都需要NAT穿越,特意在此总结一下。先做一个约定:内网A中有:A1(192.168.0.8)、A2(192.168.0.9)两用户 网关X1(一个NAT设备)有公网IP 1.2.3.4内网B中有:B1(192.168.1.8)、B2(192.168.1.9)两用户, 网关Y1(一个NAT
2013-07-04 10:04:23
581
转载 最低权限: 让您的应用程序更好地适应 Windows Vista 的用户帐户控制
在过去的一年中,我与太多的开发人员有过合作的经历,他们最初对用户帐户控制 (UAC) 的工作方式会怀有疑问,而最终又得以理解,这历历在目的过往情节交织在一起,使 UAC 像一团巨大的迷雾。诚然,毫无疑问的是,学习如何编写适用于标准用户的优秀应用程序是要费些功夫,但这方面的知识会令您在 Windows® 程序员之路上更进一步。本文的目的是通过一些必要的说明,为您开辟一条捷径。UAC 是 Micr
2013-05-29 10:21:43
1201
1
支持windows xp的libcurl dll动态库
2022-01-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人