上一页 1 2 3 4 5 6 7 ··· 17 下一页

2013年3月3日

通过WM_COPYDATA消息完成进程间通信

摘要: 完成进程间通信最简单的方式就是发送WM_COPYDATA消息。(1)发送WM_COPYDATA消息SendMessage(接收窗口句柄, WM_COPYDATA, (WPARAM)发送窗口句柄, (LPARAM)&copyData);其中的copyData是要发送的数据,类型为COPYDATASTRUCT结构体:typedef struct tagCOPYDATASTRUCT{DWORD dwData;DWORD cbData;PVOID lpData;} COPYDATASTRUCT;dwData : Specifies up to 32 bits of data to be pas 阅读全文

posted @ 2013-03-03 15:56 zhuyf87 阅读(42673) 评论(0) 推荐(2) 编辑

2013年3月2日

boost asio 应用方法学——深入框架

摘要: 原文地址:http://blog.csdn.net/luansxx/article/details/7854326要用好它,就必须先了解它,而且不能停止于表面,必须深入到内部。而了解一件事物,先要了解它的框架,再了解它的细节。了解了框架,我们就有了提纲挈领的认识。关于 boost asio 框架结构,在其文档中,用了这样一张图来描述:简单解释一下:这里由使用者(Initiator)启动一个异步操作(Asynchronous Operation),在启动异步的同时它要负责创建一个异步回调对象(Completion Handler),然后该异步操作被交给了异步操作执行者(Asynchronous 阅读全文

posted @ 2013-03-02 13:26 zhuyf87 阅读(3513) 评论(0) 推荐(0) 编辑

Boost.Asio和ACE之间关于Socket编程的比较

摘要: 原文地址:http://blog.163.com/miky_sun/blog/static/3369405201041753652505/ACE是一个很成熟的中间件产品,为自适应通讯环境,但它过于宏大,一堆的设计模式,架构是一层又一层,对初学者来说,有点困难。ASIO是基本Boost开发的异步IO库,封装了Socket,简化基于socket程序的开发。最近分析ASIO的源代码,让我无不惊呀于它的设计。在ACE中开发中的内存管理一直让人头痛,ASIO的出现,让我看到新的曙光,成为我新的好伙伴。简单地与ACE做个比较。boost::asio是一个高性能的网络开发库,Windows下使用IOCP,L 阅读全文

posted @ 2013-03-02 13:01 zhuyf87 阅读(1432) 评论(0) 推荐(0) 编辑

2013年3月1日

【面试题】二维数组的查找

摘要: 题目:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。解题思路:从二维数组的右上角的元素开始判断,因为此元素是它所在行的最大数,是它所在的列的最小数。如果它等于要查找的数字,则查找过程结束。如果它大于要查找的数字,则可以排除它所在的列。如果它小于要查找的数字,则可排除它所在的行。这样如果要查找的数字不在数组的右上角,则每次判断都可以排除一行或一列以缩小查找范围,直到找到要查找的数字,或者查找范围为空。下图是在二维数组中查找7的示意图:参考代码:// 二维数组matrix// 每 阅读全文

posted @ 2013-03-01 07:00 zhuyf87 阅读(6737) 评论(0) 推荐(2) 编辑

2013年2月28日

限制EditControl控件的输入字符数量

摘要: 使用CEdit::SetLimitText()函数来完成此功能。Call this member function to set the text limit for this CEdit object.void SetLimitText( UINT nMax);nMax: The new text limit, in characters.比如限制ID为IDC_EDIT_CODE的编辑框控件,最多只能输入30个字符。((CEdit *)GetDlgItem(IDC_EDIT_CODE))->SetLimitText(30); 阅读全文

posted @ 2013-02-28 10:58 zhuyf87 阅读(2559) 评论(0) 推荐(0) 编辑

数组形参退化为指针

摘要: 【面试题】以下代码的输出结果是?int GetSize(int data[]){ return sizeof(data);}int main(){ int data1[] = {1, 2, 3, 4, 5}; int size1 = sizeof(data1); int *data2 = data1; int size2 = sizeof(data2); int size3 = GetSize(data1); printf(“%d, %d, %d”, size1, size2, size3);}正确的输出结果应该是“20, 4, 4”,(假设是32位系... 阅读全文

posted @ 2013-02-28 09:34 zhuyf87 阅读(262) 评论(0) 推荐(0) 编辑

2013年2月27日

vc++ List Control控件获得所有选中行的序号

摘要: 方法一:POSITION pos = listCtrl.GetFirstSelectedItemPosition(); if (pos == NULL) // 没有选中的行else { while (pos) { int nItem = listCtrl.GetNextSelectedItem(pos); // nItem是所选中行的序号 } }方法二:for(int i = 0; i < listCtrl.GetItemCount(); ++i) { if(listCtrl.GetItemState(i, LVIS_SE... 阅读全文

posted @ 2013-02-27 15:20 zhuyf87 阅读(3888) 评论(0) 推荐(0) 编辑

x&(x-1) 表达式

摘要: 【面试题】以下代码结果是多少?#include <iostream>using namespace std;int func(int x){ int count = 0; while(x) { count++; x = x&(x-1); } return count;}int main(){ cout << func(9999) << endl; return 0;}func函数返回值是形参x转化为二进制后包含1的数量。每次while循环,执行一次x = x&(x-1),会将x用二进制表示时最右边的一个1变为0,同时coun... 阅读全文

posted @ 2013-02-27 09:46 zhuyf87 阅读(2585) 评论(0) 推荐(1) 编辑

十进制与二进制间的相互转换

摘要: 1. 二进制转十进制方法:“按权展开求和”例:(1011.01)2 =(1×2^3 + 0×2^2 + 1×2^1 + 1×2^0 + 0×2^(-1) + 1×2^(-2) )10=(8+0+2+1+0+0.25)10=(11.25)10规律:个位上的数字的次数是0,十位上的数字的次数是1,......,依次递增,而十分位的数字的次数是-1,百分位上数字的次数是-2,......,依次递减。注意:不是任何一个十进制小数都能转换成有限位的二进制数。2. 十进制转二进制(1)十进制整数转二进制数:“除以2取余,逆序排列,直到商为0”(除 阅读全文

posted @ 2013-02-27 09:32 zhuyf87 阅读(1001) 评论(0) 推荐(0) 编辑

2013年2月25日

c++ 友元关系与继承

摘要: 友元关系不能继承。基类的友元对派生类的成员没有特殊访问权限。如果基类被授予友元关系,则只有基类具有特殊访问权限,该基类的派生类不能访问授予友元关系的类。class Base{ friend class frnd;protected: int i;}// Frnd has no access to members in D1class D1 : public Base{protected: int j;};class Frnd{public: int mem(Base b) { return b.i; } // ok: Frnd is friend to Base ... 阅读全文

posted @ 2013-02-25 20:48 zhuyf87 阅读(3077) 评论(0) 推荐(0) 编辑

上一页 1 2 3 4 5 6 7 ··· 17 下一页

导航