自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 资源 (2)
  • 收藏
  • 关注

原创 引用计数需要注意的几个地方

This is a trick worth knowing: nesting a struct in the private part of a class is a convenient way to give access to the struct to all the members of the class, but to deny access to everybody else (e

2013-01-28 11:17:37 631

转载 类/结构体指针 描述其大小的内存位置

class Test{public:Test() { std::cout ~Test() { std::cout void SetData(int i){data = i;}int data;};int main(){Test *p = new Test[2];p[0].SetData(11);p[1].SetData

2013-01-28 10:30:22 489

原创 POCO之Number Format

1.按指定宽度格式化数值char buffer[64];std::sprintf(buffer, "%*d", width, value);2.在上述的基础上设置默认位(0)char buffer[64];std::sprintf(buffer, "%0*d", width, value);3.格式化字符串:sprintf(buffer, "%ms"

2013-01-27 18:23:46 580

原创 dll导出类

导出的类成员函数需是virtual

2013-01-26 11:14:21 304

原创 去除一些警告

// Turn off some annoying warnings#ifdef _MSC_VER#pragma warning(disable:4786)  // identifier truncation warning#pragma warning(disable:4503)  // decorated name length exceeded - mainly a proble

2013-01-26 11:13:00 462

转载 swprintf/wsprintf

sprintf 单字节版本的C/C++库函数swprintf 宽字节版本的C/C++库函数而我们上面的wsprintf和上面两个函数看起来很相似,大家不要搞混淆了啊,wsprintf最前面的w不是代表Wide,宽字节的意思了,而是Windows的W,代表是windows的API函数了,其实它是一个宏这在上面已经说过了,真正的API函数其实是wsprintfA和wsprint

2013-01-21 16:30:04 689

转载 IOCP连接关闭

及时监测连接被动关闭       除非有特别要求,否则你应该总是对每个连接保持一个挂起的接收pending io(使用WSARecv投递)。如果用户主动关闭连接,你的GetQueuedCompletionStatus调用将返回成功,但接收到的数据长度为0,你能根据这点检测连接是否已被对方关闭。如果连接被重置或者io被取消(如果你调用了CancelIo的话),GetQueuedC

2013-01-21 15:26:44 4330

原创 获取父窗口背景小方法

获取父窗口背景小方法:::MapWindowPoints( NULL, hparent, (LPPOINT)&rc, 2 );CPoint pt;dc.SetViewportOrg( -rc.left, -rc.top, &pt );GetParent().SendMessage( WM_ERASEBKGND, (WPARAM)(HDC)dc, lParam );dc.SetV

2013-01-18 10:57:17 723

转载 SetWindowOrg和SetViewportOrg

SetWindowOrg和SetViewportOrg作者:天涯 来源:中国自学编程网 发布日期:1221180341SetWindowOrg和SetViewportOrg这两个函数比较难搞懂,经过本人的google和实践终于弄明白了这两个函数的本质区别。 1.SetWindowOrg 是把设备坐标的原点移动到逻辑坐标的(X, Y

2013-01-18 10:29:16 787

转载 设备坐标和逻辑坐标

要用到两个函数:CDC::LPtoDP  将逻辑坐标转换为设备坐标CDC::DPtoLP  将设备坐标转换为逻辑坐标 设备坐标(Device Coordinate)又称为物理坐标(Physical Coordinate),是指输出设备上的坐标。通常将屏幕上的设备坐标称为屏幕坐标。设备坐标用对象距离窗口左上角的水平距离和垂直距离来指定对象的位置,是以像素为单位来表示的,设备坐标的X轴

2013-01-18 10:24:48 691

原创 RichEdit接口

IRichEditOle:  控制OLE对象IRichEditOleCallBack: 获取所需接口和存储

2013-01-16 16:25:43 652

原创 包容器

ActiveX控件的包容器通常是一个表单(form)或者对话框。。。包容器通常要管理多个ActiveX控件,或者其他Windows普通控件,由于ActiveX控件与包容器之间的通信涉及到许多方面,他们之间不是简单的客户-服务器关系,因此,包容器为它所包容的每个ActiveX控件提供一个被成为控制点(control site)的对象,ActiveX控件通过控制站点对象与包容器进行交互。控制站点对

2013-01-16 16:10:23 1071

转载 IOleObject

标准接口:IOleObject在OLE包容器程序中,以站点对象负责管理链接或嵌入到文档中的服务器对象。这就需要在包容器的站点对象和服务器对象中分别实现相应的必要接口,以完成相互的通信。对于任何一个站点对象,其必须提供的接口是IOleClientSite,服务器对象所必须实现的接口为IOleObject。成员函数:SetClientSite(IOleClientSite *pCl

2013-01-16 15:45:16 4720

转载 IOleClientSite

包容器程序可以通过调用Close()方法来终止嵌入对象的激活状态。由包容器的站点对象实现的IOleClientSite接口是嵌入对象获取由包容器程序提供的诸如显示位置、名字、用户界面、以及其他一些本地或外部资源信息的主要手段。在组件服务器中使用IOleClientSite接口可以请求到包容器提供的服务。在包容器程序必须为其所包含的每一个复合文档对象提供一个IOleClientSite接口的实现。I

2013-01-16 15:37:11 3663

原创 Ole拖放

FORMATETC, 描述OLE数据,target从IDATAOBJECT请求某种格式数据STGMEDIUM,存储OLE数据,从IDATAOBJECT保存数据IEnumFORMATETC::GetData()由target调用EnumFormatEtc由IDropSource调用 DoDragDrop引发的操作:1.主要是生成一个IEnumFORMATETC对象ST

2013-01-16 14:50:00 847

转载 Menu的窗口句柄

其实我们看到的菜单也是窗口,窗口类名是“#32768”,不过HMenu不是窗口句柄,HMenu是菜单的一个内置结构的地址。如果我们想要替换菜单的窗口过程的地址,必须通过Hook来截获到菜单的窗口创建消息。对于一般的创建我们只要处理了wm_create就可以了,但对于菜单我们必须截获Windows没有公开的消息:0x1e2 ,在该消息中msg.hwnd就是我们要找的菜单窗口的句柄。获

2013-01-14 15:40:07 1896

原创 libuv服务端

服务端:uv_tcp_init(uv_loop_t*loop, uv_tcp_t* handle):将各个变量初始化,并将handle插入双链表中。 uv_tcp_t:该类型包含socket成员变量。 uv_tcp_accept_t:内部使用类型,包含SOCKET accept_socket,缓冲区和event_handle, wait_handle调用uv_liste

2013-01-14 15:35:16 1042

转载 std::strign的内存泄露

莫名其妙的发现总是有16字节的内存泄露,网上找到同样的问题:“经过一番源代码跟踪调试后,发现原因在于TOWER_INFO结构体的构造函数内调用了memset(this, 0, sizeof(_TOWER_INFO);使得string内部指针_Bx._Ptrr值为0,_Myres为0,在这种情况下当string对象被赋值为小字符串(字节数包括结束符小于等于16的字符串)时,因新申请的

2013-01-07 20:15:27 828

原创 libuv之用CRITICAL_SECTION实现读写锁

typedef union {  /* srwlock_ has type SRWLOCK, but not all toolchains define this type in */  /* windows.h. */  SRWLOCK srwlock_;  struct {    uv_mutex_t read_mutex_;    uv_mutex_t write_m

2013-01-06 18:25:10 1602

原创 libuv之基础

TCP客户端连接步骤:①  .连接方法Uv_loop_t *loop = uv_default_loop(); uv_tcp_t *client = malloc…;uv_connect_t* connect_req = malloc…; uv_tcp_init(loop, client) uv_tcp_connect(connect_req,  client,

2013-01-06 16:13:18 13191 2

原创 博弈论

一,五个基本结论①不要选择劣势策略②绝大多数人是邪恶的③学会换位思考④欲取之,必先知之⑤理性选择次优结果不要选择在任何条件下都是非最佳对策的策略

2013-01-02 00:32:28 580

原创 刘璋分析

与汉末群雄相较,刘璋“暗弱”、“不武”〔1〕(卷32《先主传》注引《献帝春秋》)。主要表现在:(一)不识益州兵要地理形势,不能努力修好汉中的张鲁,丧失了益州北面屏障,使益州处于外敌威胁之下。(二)缺乏重大军事斗争的心理素质。尽管拥有益州这块“风水宝地”,刘璋却极端地不相信自己的力量(我想这也及可能是因为一心想自保,缺乏乱世锻炼),对抗并不比其强大的张鲁,要拉曹操作为援手;当曹操对自己产

2013-01-01 13:13:32 915

Windows核心编程第5版英文版.chm

Windows核心编程第5版英文版.chm

2012-03-31

c++高手箴言(有关WINDOWS编程)

c++高手箴言,经验总结!CHM 有关WINDOWS编程)

2008-11-24

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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