自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 中文字符串转utf8 八进制形式

std::string strxx = unicode_2_utf8(L"中文utf8转8进制"); CString strOct; for (int i = 0; i < strxx.length(); i++) { int b1 = strxx.at(i); if (b1 < 0) { ...

2020-04-16 13:53:59 181

原创 VC++把某个窗口带到前台(设为前景窗口)

一看标题以为还不简单嘛,SetForegroundWindow不就OK了吗?或者以下中某一个?1.  ::ShowWindow(m_hWnd, SW_SHOWNORMAL);2.  ::SetActiveWindow(m_hWnd);3.  ::SwitchToThisWindow(m_hWnd, TRUE);4.  ::SetWindowPos其实都存在各种问题,尤其是自己的...

2018-12-13 13:01:26 612

原创 Win10 设置取消快速启动栏图标,C++版

Win10对快速启动栏的设置在接口上并没有提供很好的方法,在网上找了一段是VBS和powershell写的,特地转成支持VC的版本:void    TaskbarPinWin10(LPCTSTR lpszFilePath,LPCTSTR lpszFileName){    do     {        TCHAR  szVal[MAX_PATH]={0};        ULON...

2018-11-15 16:16:28 883

原创 VC 编译boost方法

官网下载好boost,解压出来,用vc的命令提示符cd到目录下执行:bootstrap.bat 生成bjam.exe然后执行:bjam --toolset=msvc-9.0 stage debug release link=static runtime-link=shared,static -j2 我这里是vc2008,如果是其他版本的vc 改下toolset即可vs201...

2017-07-06 13:56:39 399

原创 NodeJS解析url参数

var http = require('http');var url = require('url');http.createServer(function (request, response) { // 解析请求,包括文件名 var req = url.parse(request.url); var pathname = req.pathname; /

2017-04-25 17:41:54 6016

原创 服务程序中创建带管理员权限的UI进程问题总结

如果UI进程仅仅是一个普通的进程而不需要申请管理员权限,那问题不大,直接在服务里获取explorer.exe的token或者用WTSGetActiveConsoleSessionId和WTSQueryUserToken,然后用CreateProcessAsUser创建即可,好多参数都可以设置默认,当然前提是要等桌面创建好再获取,因为服务是在桌面创建之前就启动了的,这个要注意。然而管理员权限的进程可

2016-11-02 10:34:07 2433 1

原创 ADSI接口获取AD域服务器账户列表[VC++]

之前用ldap_open API系列,在bind的时候老是提示无效认证,最后msdn还找到了一种COM接口获取AD域控服务器用户列表的方法,代码我在例子的基础上修改了下,测试通过,能获取到:// ldapsearch.cpp : Defines the entry point for the console application.//#include "stdafx.h"#incl

2015-04-21 14:52:20 4875

原创 基于SkinSB皮肤滚动条美化源码的改进版本,完美支持x64

前言:大家知道,win32窗口的内置滚动自绘是个非常棘手的问题,在写这篇文章之前首先感谢下CSDN的mynamelj,他写的那个SkinSB开源的时候我就开始使用来美化一般win32窗口的滚动条,很好用,但是最近有想把自己的应用迁移到x64平台的想法,所以必须把全部源码编译成64位的版本,以便能在win 64位下获得最佳性能,好了废话不多说,继续往下看。改进SkinSB:当时遇到两

2012-08-10 23:36:18 4628 7

原创 大型文件服务器缓存架构

在硬件白菜价的今天,我们可以把媒体服务器设计成这样:无盘网吧,流媒体视频服务器,大型网站,音乐服务器 均可

2012-05-05 21:13:05 3471

原创 编程实现计算机硬件温度探测极其控制风扇转速总结

CPU,主板,硬盘,显卡,南北桥芯片,这些硬件在整个计算机系统中占据很重要的地位他们能否正常的工作直接影响着计算机的寿命,在一些大型企业或者电脑密集并经常运转的地方比如网吧,对硬件温度就非常敏感,夏天一到,加上设备是超负荷运行的话,老化速度就很快了。首先open hardware monitor这个开源的软件实现了大部分功能,但遗憾的是只有C#版本的简单描述下过程:CPU温

2012-04-07 17:58:13 5257 3

原创 今天成功把MFC代码的多语言问题用wxWidgets的方式搞定了

试过多种方式做多语言都不是很方便,发现wxWidgets的poEdit工具很不错,用key - value的映射和 _(X)的宏替换方式开发人员可以说完全跟多语言翻译解脱开来,而且保证写的代码可读性非常高,不用去定义一堆无意义的ID,想显示啥就写啥 ,如:SetWindowText(_("标题")); poEdit 的使用网上有介绍,现在关键要注意的是,我们是用中文,代码里的要翻译的文

2012-03-25 21:28:28 3210

原创 boost::shared_ptr是个好东西

在需要进行数据共享时 这个智能指针真的起了很大的作用这样管理起来数据既不冗余也十分的安全,因为有一个引用计数在后面支撑着,比如我搜索出来的列表,再压到另一个容器里,里面存储的仍然是实际的数据,就算是原先的容器被销毁了,只要搜索容器没被销毁数据依然可以使用,嘿嘿,感谢你啊 boost 非常安全struct RES_SERVER_GAME_ITEM{

2011-08-10 23:52:43 1025

原创 windows NT 服务程序的创建,删除,启动,停止

<br />/*函数名: RtStatrtService描述:启动一个NT服务,服务名字由参数传入*/BOOL RtStatrtService(LPCTSTR lpMachineName,LPCTSTR lpServiceName){ BOOL bResult = FALSE; SC_HANDLE hSCManager = OpenSCManager(lpMachineName, SERVICES_ACTIVE_DATABASE, SC_MANAGER_ALL_ACCESS);

2010-11-21 14:12:00 4116

原创 完美自绘制CListCtrl控件2[MFC]

上篇自绘了CListCtrl,做得大体上差不多了,但是CHeaderCtrl没有绘制,右边非column部分也没将网格线顶到头,实在是一个小遗憾这里一并将CHeaderCtrl绘制了而且斑马线也画到最右边,使用这个listctrl的时候只需这样子设置,就可以获得很好的效果: DWORD dwExtentStyle = m_list.GetExtendedStyle(); m_list.SetExtendedStyle(dwExtentStyle|LVS_EX_FULLROWSELECT|LVS_EX_D

2010-09-03 18:12:00 10576 11

原创 完美自绘制CListCtrl控件[MFC]

自绘一个item我相信大部分人都在10分钟内能搞定但是绘制非item部分的区域,同学们就傻眼了,不知道如何下手CListCtrl的绘制机制在windows里做了一个优化,就是一个绘制循环通知过程之所以不在OnPaint中画是考虑效率上的原因,好了我们看下这个绘制循环:  CDDS_PREERASE 准备开始擦除循环 CDDS_POSTERASE 擦除循环结束 CDD

2010-09-02 15:48:00 18892 19

原创 控制台程序不显示dos窗口并给EXE设置图标的方法

<br />用ShowWindow(hWnd,SW_HID)的方法不奏效,双击图标还是会闪一下<br />因为程序是后台运行的,闪一下用户还是说“很吓人”,有病毒的感觉,呵呵<br /> <br />//代码前面加上#ifdef _UNICODE#pragma comment( linker, "/subsystem:/"windows/" /entry:/"wmainCRTStartup/"") #else#pragma comment( linker, "/subsystem:/"win

2010-08-29 00:56:00 3170

原创 WTL的CBitmapButton在MFC下完美使用

<br />MFC下的CBitmapButton我觉得是牛脾气的难用,WTL的这个不错,完全自绘,使用也简单方便<br />现在改装好并结合MFC的方式,下附源码及使用例子:<br />代码移植于WTL的CBitmapButton,可以在MFC下完美的使用<br /> <br />SkinButton.h<br />#pragma once// CSkinButton// bitmap button extended styles#define BMPBTN_HOVER 0x000

2010-08-28 12:35:00 5119

原创 控制台程序输入密码时显示星号

<br />int _tmain(int argc, _TCHAR* argv[]){ char password[100]=""; char c; int i=0; while (true) { c=getch(); if (c=='/r') { break; } else if (c=='/b') { if (i>0) i--; putchar('/b'); putchar(' '); put

2010-08-27 12:53:00 1157

原创 URL Encode

用VC实现post数据常常会遇到URL编码问题在此封装一个工具类进行UTF8编码的转换源码来自php source code只是简单的封装给C++调用//URL 编解码类//来自PHP源码class CRtUrlConv{public: static char *urlencode(const char *in_str ) { char *out_str; int in_str_len, out_str_len; in_str_len=strlen(in_s

2010-07-01 13:49:00 4132

原创 P2P中打洞的若干问题

打洞这原理也不是我起码不是CSDN中任何一个人所创的,这个原理应该来网关(路由器NAT)的制造者,首先不请自来的数据NAT会毫不客气的丢掉的,这大家都认可,然后就是那套打洞逻辑了: 我们先看下图: 在Client A和Client B之间建立UDP直连的过程如下: (1)  Client A登录Server S,NAT A 为这次的Section分配了一个端口55000

2010-05-05 00:53:00 9069 9

原创 各种设计模式一览

 模式的简单概念: 设计模式:一个设计模式描述了一个被证实可行的方案。这些方案非常普遍,是具有完整定义的最常用的模式。一般模式有4个基本要素:模式名称(pattern name)、问题(problem)、解决方案(solution)、效果(consequences)。  常见23种模式概述:  1) 抽象工厂模式(Abstract Factory):提供一个创建一系列相

2010-05-03 19:09:00 974 1

原创 设计模式之工厂模式(Factory)

工厂模式在应用中使用得也很广泛,他提供了一个创建一系列相关或相互依赖对象的接口,而无需指定他们具体的类。考虑一个动物类Animal,提供shout,eate,grow方法,并从这个抽象类派生具体的动物子类:Cow,Horse,Dog,Pig最后通过Factory类实例化他们,Factory提供一个静态的方法getAnimalInstance,并传递一个字符串参数表示创建具体的类 

2010-05-03 15:01:00 783

原创 设计模式之观察者模式(Observer) C++ 实践

在上一篇中简单的介绍了设计模式中Observer模式的java实现,本人一直在做C++开发,理所当然要做一个C++的实现版,java基础基本是在学校拿下的,工作后偶尔玩下,android开发也是基于Java的,所以我熟悉java语言并不奇怪,仅仅是我没有做过java的大型项目罢了,好了言归正传,这里的Observer c++版本也基本是参考java语言的接口,函数名字基本一样,只是我采

2010-05-03 00:05:00 2270 5

原创 设计模式学习

gof--“四人帮”描述的设计模式中并不给出一个具体的实现,里面仅仅简单的描述原理和自己的经验设计模式是在工作中才能体会到它们的作用的,有些人喜欢大肆的吹捧它,甚至以是否熟悉设计模式来衡量一个程序员的水平,这是十分不厚道的。既然gof那本书已经很经典了为什么还要自己写些关于这方面的东西呢?网上搜索一下,学习设计模式方面的博客总结不少,厚道的说gof那本书不适合中国人或者说初学者看,原因有者

2010-05-02 14:54:00 2106

原创 自绘标准CTreeCtrl的实现(NM_CUSTORMDRAW方法)

自绘树CTreeCtrl可以自己用子类化在派生类里的OnPaint里绘制也可以响应NM_CUSTORMDRAW这个反射消息,然后绘制,NM_CUSTORMDRAW里有个什么绘画周期的概念,他可以在不同的绘画段绘制不同的内容,这里具体细节不再赘述,读者可以参考MSDN,这里主要阐述NM_CUSTORMDRAW的绘制方式:void CSkinTreeCtrl::OnNMCustomdraw

2010-05-01 15:57:00 13000 13

原创 如何完美的将对话框设置成无边框无标题栏样式?

很多同学在绘制UI时喜欢将窗口或者对话框设置成无边框无标题栏样式,然后在客户区里就可以”胡作非为“了,想干什么都行然而新手们包括笔者以前都遇到的一个问题是:对于对话框来说直接这样设置:ModifyStyle(WS_CAPTION | WS_THICKFRAME, 0, SWP_FRAMECHANGED);  是不完美的,他们会发现在对话框的情况下,那个border还是存在,最后怎...

2010-04-24 23:29:00 15974 17

原创 在线音视频加速器终于实现了

本来想两天就搞定的一个小东东,花了我一周多,主要是有一个bug隐藏不露后来被我纠出来了,现在看起来跑的很稳定,多线程多来源并发加速,嘎嘎界面再做做就可以了,这个交给UI设计师画下图就OK了。基本原理就是HTTP分片下载啦,还有截获浏览器的HTTP请求,主要通过本地自动代理配置实现我全是socket api控制实现,不用微软那一套wininet api,好移植加速视频的要改动下缓

2009-12-30 21:09:00 3900 4

原创 窗口内置的滚动条如何绘制的更好?

 我绘的太难看啦,大家觉得应该怎么绘制呢?响应了一堆消息 ,最后还是绘制不好,那位有这方面经验的给小弟指点指点,有例子更好,PS:不能通过新建窗口替换的方法  case WM_MOVE: case WM_PAINT: case WM_NCPAINT: case WM_NCACTIVATE: case WM_NOTIFY: case WM_NCLBUTTONUP:case WM_NC

2008-10-18 21:36:00 889 1

原创 庆祝blog新开通

好忙,没时间写文章 啊

2007-08-31 20:20:00 581

提示
确定要删除当前文章?
取消 删除