![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
大蓝头
专注安装包美化及完整的打包解决方案、多平台截图、多平台远程桌面控制!
展开
-
如何在浏览器控件中使用牛牛截图控件
上次发布牛牛截图控件后,非常多的朋友感兴趣,也有不少朋友把此控件集成进了他们的产品中进行商用;对此我非常欣慰,能帮助其他人节省时间,确实是件值得高兴的事。 但最近好几个朋友都表示通过动态库加载的方式在浏览器控件中使用不方便,也有朋友说不知道如何在浏览器控件中使用;本文旨在演示如何在浏览器控件中使用牛牛截图;目前牛牛截图控件的体积已经缩减到了150KB,更加便于在浏览器中应用了。 本原创 2014-04-20 23:27:54 · 8549 阅读 · 1 评论 -
[分享]牛牛截图控件2.0版本发布
牛牛截图现已对多显示器,DPI放大进行了完美支持,欢迎试用。 在上一个版本发布后,收到非常多朋友的反馈,近期有了些时间,对控件进行了升级;同时对比测试了几大主流的截图功能,除了腾讯QQ最新版,其他如360、旺旺、人生日历截图等,均对DPI放大的支持不是很好,多显示器支持我仅测试了腾讯,其他的实现不清楚。 上一个版本的链接请见:http://blog.csdn.net/tra原创 2015-03-01 10:52:46 · 3980 阅读 · 2 评论 -
Visual C++ 64 位迁移的常见问题
64位的win7已经广泛、深入应用了,赶快看看我的32位程序该怎么办吧?1、用 Visual C++ 创建在 64 位 Windows 操作系统中运行的应用程序时,应注意以下问题:在 64 位 Windows 操作系统中,int 和 long 是 32 位值。对于计划为 64 位平台编译的程序,应注意不要将指针赋给 32 位变量。在 64 位平台上,指针为 64 位,如果将该指转载 2015-08-27 09:44:55 · 982 阅读 · 0 评论 -
关于DUILIB的遮罩,控件穿透以及其应用的分析实践
本文对Duilib的遮罩层以及及穿透进行相关的讨论,原理很简单,除了讨论实现外,在本文也讨论如何利用这些特性、原理来实现需求,欢迎讨论。 1. 遮罩层的实现在软件的UI显示中,我们经常会需要遮罩住整个窗口或者是窗口的一部分,以避免客户操作相应的UI,等待特定的操作完成之后才解除锁定。 其实这个在Duilib中,是非常容易实现的,好像还有不少人不太清楚,咱们这里就先来原创 2015-07-31 17:56:58 · 5900 阅读 · 4 评论 -
[分享]牛牛图片查看器[仿QQ图片查看器]及大致原理说明
这是一上完全通过Duilib来实现的一个图片查看器,仿照QQ图片查看器的效果实现,希望大家喜欢。先看一下使用的截图吧:一:使用说明1. 通过命令行调用,传递图片路径即可打开图片查看器,支持绝对路径与相对路径,如:ImageViewer.exe c:\test.png2. 在窗口上双击可关闭程序二:功能说明1. 支持jpg、png、bmp、gif等4种格式图片原创 2015-08-05 10:31:47 · 3390 阅读 · 0 评论 -
手把手教你玩转QQ的原创表情
QQ的原创表情非常的可爱,做得比较精致,深受广大QQ用户的喜爱;但怎么将这些表情保存下来,好让我可以在别的地方用呢?乖乖牛在线将从不同的视角,为你解析QQ原创表情的存储、互通、保护的机制;熟悉了这些后,你将不光能够将自己喜欢的原创表情保存下来;如果你有自己的产品,也可以轻松的让自己的产品支持QQ的原创表情噢。原创 2015-10-23 13:58:01 · 4805 阅读 · 0 评论 -
记一次奇怪的内存错误分析过程
这几天在给一个老项目扩展功能,发现了一个奇怪的问题,在群友的帮助下,经过痛苦的跟进,终于找到了问题原因,特此记录。 一:背景这是在一个老旧的MFC项目中增加Duilib窗口的显示,没办法,MFC的窗口自绘实在累人,还是用Duilib来得方便。在前期做窗口效果时,一切都很正常,可当我想要对接业务,在Duilib的窗口类中[GroupChatDlg]增加成员变量,并且在原创 2015-12-31 17:37:00 · 1161 阅读 · 0 评论 -
获取任务栏所在位置的代码
获取任务栏所在位置的代码 APPBARDATA taskbar = {0}; taskbar.cbSize = sizeof(APPBARDATA); SHAppBarMessage(ABM_GETTASKBARPOS, &taskbar);switch(taskbar.uEdge){case ABE_BOTTOM: break;case ABE_TOP:转载 2015-12-25 15:02:18 · 1290 阅读 · 0 评论 -
关于使用vld来进行内存泄漏检测的基础知识
一. 内存泄漏的危害内存泄漏产生的根本原因在于动态申请的内存未及时释放或未正确的释放。 1. 耗光内存,程序无法正常工作或崩溃2. 产生内存碎片,在实际内存够用的情况下,因为没有足够大的连续内存块,而导致程序申请内存失败内存泄露最明显最直接的影响就是导致系统中可用的内存越来越少。直到所有的可用内存用完最后导致系统无可用内存而崩溃。原创 2017-01-10 10:44:51 · 3510 阅读 · 0 评论 -
记一次gdb调试过程,以备后用 (纯自用)
gdb是linux环境下的调试利器,功能强大,指令众多,如果不是经常使用,很多指令记不住。今天有一个历史项目的问题要跟踪,由于之前交接过来的同事已经离职,而这个项目又很长时间没有人维护了,代码也比较复杂;临时需要定位问题,无从下手,只好在入口加上断点,一步步单步出流程来。由于是在特定的环境中出现,而编译代码的机器是自动化编译,源码路径有所不同,采用如下方式1. 将源码复制到目标机器 ...原创 2018-08-22 17:34:32 · 288 阅读 · 0 评论 -
关于duilib中的list的扩展探索
今天在做一个程序的界面时,需要在一个列表中显示除文字以外的其他控件,如:Edit、Button、Combo等;我做界面使用的是duilib,其自带的CListUI并不能满足此向功能,需要进行扩展,在此记录,以便后续使用需要。原创 2014-03-23 23:15:10 · 11443 阅读 · 34 评论 -
MFC中应用duilib的相关兼容性问题处理
本文致力于解决在MFC中应用duilib的相关兼容性问题。 duilib非常强大,目前已经被各大公司广泛应用,但基本都是基于win32的;一份与MFC混合使用的DEMO,使得我们这些在老的MFC项目下久经UI之苦的看到了希望。 然而,就在我对这个MFCDEMO进行测试时,在基本功能正常的情况下,发现还是有少许的问题的,目前我发现的问题主要集中在键按键与鼠标按键方面,具体如下:1原创 2014-04-13 11:02:30 · 4000 阅读 · 2 评论 -
数据库数据修复
简要记录背景:1. 数据库由于硬盘问题完整性被破坏了,使用dbcc checkdb完全没有效果2. 经检查发现,有两张使用最频繁的表无法进行任何操作,其他表正常3. 通过某数据库修复工具,可以查看到那两张坏掉的表中的数据【估计还是不全】,但由于没有授权,只能查看,数据导不出来 在此基础上,我们按如下办法来尽可能对数据库进行修复,修复办法如下:1. 想办法重建立一个新库,除了原创 2013-06-11 16:31:34 · 1217 阅读 · 1 评论 -
C++对象的JSON序列化与反序列化探索
一:背景作为一名C++开发人员,我一直很期待能够像C#与JAVA那样,可以轻松的进行对象的序列化与反序列化,但到目前为止,尚未找到相对完美的解决方案。本文旨在抛砖引玉,期待有更好的解决方案;同时向大家寻求帮助,解决本文中未解决的问题。 二:相关技术介绍本方案采用JsonCpp来做具体的JSON的读入与输出,再结合类成员变量的映射,最终实现对象的JSON序列化与反序列化。本文不再原创 2013-06-22 14:26:54 · 17246 阅读 · 7 评论 -
C++对象的JSON序列化与反序列化探索续-复杂对象的序列化与反序列化
本文是基本上一篇博文进行改进而成,上一篇请见:C++对象的JSON序列化与反序列化探索此处就不多说了,直接上代码。1. 序列化基类#pragma once#include #include #include "json/json.h"using std::string;using std::vector;struct CJsonObejectBase{pro原创 2013-06-22 23:20:58 · 3621 阅读 · 0 评论 -
C++对象的JSON序列化与反序列化探索完结-列表的序列化与反序列化
在前两篇文章中,我们已经完成对普通对象以及复杂对象嵌套的序列化与反序列化,见如下地址:C++对象的JSON序列化与反序列化探索C++对象的JSON序列化与反序列化探索续-复杂对象的序列化与反序列化经过一番折腾,总算把带有列表的对象的序列化完成了,目前支持 list 和 vector 的列表,以及自定义的其他类型的列表,我们可以先来看看实现的效果。复杂对象及带列表对象的序列号原创 2013-06-25 22:57:39 · 6526 阅读 · 10 评论 -
软件集成安全软件自动扫描功能
最近一个项目中,由于客户认为我们的文件传输功能可能导致一方传输病毒,不放心。结过讨论,客户最终认可如下方案:在文件传输完毕后,自动调用本机上安装好的安全软件对该文件进行扫描。对此功能进行了简单的调研,以下列出两款软件的调用接口:启动杀毒命令:360杀毒:C:\Program Files\360\360sd\360sd.exe "c:\test.exe"瑞原创 2013-07-02 19:10:58 · 1099 阅读 · 0 评论 -
一个CFile::Remove引起的奇怪问题
今天收到测试的一个反馈,我们的一个程序,在WIN7、WIN8下安装后,运行不起来,在进程列表中可以看到,但就是不出来窗口,同样的程序在XP下正常,在UAC关闭的情况下也正常,在以管理员权限运行时也正常。现象有点奇怪,但也有一个规律,就是在UAC开启的情况下,如果不是以管理员权限运行,则会出问题,根据程序现象,我从代码上排查,发现就在程序启动的代码部分即“挂起”,这里的现象类似于挂起,因为是程序原创 2013-07-30 23:26:28 · 2224 阅读 · 0 评论 -
一个疑惑的的问题-ntvdm.exe进程
今天测试反馈了一个问题,在启动我们程序某个模块的程序时,会立即出现一个ntvdm.exe进程,此进程会占用大量的系统资源,导致系统卡住。当第一眼看到这个现象时,以为是电脑中毒了,所以立即在网上查。了解到这个进程是WINDOWS为了兼容16位的应用程序而启动的一个虚拟机应用,可是我们的项目中,全都是32位的应用程序啊,问题出在哪里了呢?后来跟踪发现原因如下:启动的这个模块,会动态的从原创 2013-07-26 00:10:08 · 2300 阅读 · 0 评论 -
关于duilib的CTreeViewUI扩展以支持节点拖放的手记
本文主要是记录下对于CtreeViewUI支持不同节点间的拖放功能的扩展过程,抛砖引玉,希望能让更多的人来丰富duilib的功能。 由于客户要求能够在树控件中在各个节点间进行节点拖放,此项目是应用duilib来实现的,但找遍了duilib的例子以及网上的资料,都没有相关可以拖放的树的信息,这下可难倒我这个刚入门的duiliber了,想来想去,拟定了如下三个探索方向:1. 嵌入windo原创 2014-03-29 02:42:30 · 4848 阅读 · 4 评论 -
duilib中CWebBrowserUI的使用问题解决
最近在使用CWebBrowserUI时,发现了几个问题,特此记录。在xml中的标签如下:在程序中加载如下: CWebBrowserUI* pWebBrowser = static_cast(m_pm.FindControl(_T("ie"))); if( pWebBrowser ) { pWebBrowser->Navigate2("http:/原创 2014-04-12 01:53:11 · 6163 阅读 · 5 评论 -
UAC权限的提权与降权
转自:http://blog.csdn.net/wsyjz/article/details/7080197原文地址:http://www.codeproject.com/KB/vista-security/VistaElevator.aspx源代码分享在CSDN上的链接:http://download.csdn.net/detail/wsyjz/3934006 C++代码演示程序分享转载 2013-05-30 16:40:15 · 1696 阅读 · 0 评论