- 博客(17)
- 收藏
- 关注
转载 socket通信简介
“一切皆Socket!”话虽些许夸张,但是事实也是,现在的网络编程几乎都是用的socket。——有感于实际编程和开源项目研究。我们深谙信息交流的价值,那网络中进程之间如何通信,如我们每天打开浏览器浏览网页时,浏览器的进程怎么与web服务器通信的?当你用QQ聊天时,QQ进程怎么与服务器或你好友所在的QQ进程通信?这些都得靠socket?那什么是socket?socket的类型有哪些?还有
2013-08-28 10:28:37
446
转载 堆和栈的区别
堆和栈的区别一、预备知识—程序的内存分配一个由c/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。3、全局区(静态
2013-08-13 16:10:39
427
原创 MFC---一个对话框,初始时没有OnInitDialog()函数,我们如何初始化其数据成员及函数
在vc对话框的操作中,很多资料上都讲到可以使用虚函数OnInitDialog()对其进行初始化。但是在类的添加虚函数的列表中,并没有这个函数。这是怎么回事呢?事实上,在消息框里面有一个 WM_INITDIALOG 消息,添加这个消息,则自动添加了一个OnInitDialog()函数。这样就可以对对画框进行初始化了。首先,按ctrl + W,打开一对话框,找到在添加O
2013-08-06 15:31:23
6603
转载 stdcall与DLL
如果通过VC++编写的DLL欲被其他语言编写的程序调用,应将 函数的调用方式声明为__stdcall方式,WINAPI都采用这种方式,而C/C++缺省的调用方式却为__cdecl。__stdcall方式与 __cdecl对函数名最终生成符号的方式不同。若采用C编译方式(在C++中需将函数声明为extern "C"),__stdcall调用约定在输出函数名前面加下划线,后面加“@”符号和参数的字节数
2013-07-31 14:49:40
451
原创 c++ primer笔记
第12章const在成员函数形参表后,表示将成员函数声明为常量double avg_price() const;const成员不能改变其所操作的对象的数据成员。const必须同时出现在声明和定义中,若只出现在一处,会编译错误2。在class中声明为inline了,就不需要在定义中声明inline 在class中没有声明为inline的,在定义中声明为inline也是可以的
2013-07-29 17:15:25
443
转载 c-----语言的按位运算符
& 按位与 | 按位或 ^ 按位异或 1. 按位与运算 按位与运算符"&"是双目运算符。其功能是参与运算的两数各对应的二进位相与。只有对应的两个二进位均为1时,结果位才为1 ,否则为0。参与运算的数以补码方式出现。 例如:9&5可写算式如下: 00001001 (9的二进制补码)&00000101 (5的二进制补码) 00000001 (1的二进制补码)可见9&5=1。 按位与
2013-07-29 11:08:42
403
转载 面试
求下面函数的返回值( 微软)int func(x) { int countx =0; while(x) { countx ++; x = x&(x-1); } return countx; }假定x = 9999。 答案:8思路:将x转化为2进制,看含有的1的个数。
2013-07-29 11:05:49
411
转载 linux下调试方法-GDB
应用程序的话,最常用的就是使用 printf 直接打印,经常需要搭配 #if... #endif 之类的预处理。问题大致定位好之后,可以使用 gdb ,可以本地调,也可以交叉调。用 GDB 调试程序原著:Rick McMullin用 gdb 调试 GCC 程序 Linux 包含了一个叫 gdb 的 GNU 调试程序. gdb 是一个用来调试 C 和 C++
2013-06-14 16:23:44
494
原创 UML类图
UML类图关系大全1、关联双向关联:C1-C2:指双方都知道对方的存在,都可以调用对方的公共属性和方法。在GOF的设计模式书上是这样描述的:虽然在分析阶段这种关系是适用的,但我们觉得它对于描述设计模式内的类关系来说显得太抽象了,因为在设计阶段关联关系必须被映射为对象引用或指针。对象引用本身就是有向的,更适合表达我们所讨论的那种关系。所以这种关系在设计的时候比较少用到
2013-06-14 16:07:54
441
原创 c++设计模式---工厂模式
软件领域中的设计模式为开发人员提供了一种使用专家设计经验的有效途径。设计模式中运用了面向对象编程语言的重要特性:封装、继承、多态,真正领悟设计模式的精髓是可能一个漫长的过程,需要大量实践经验的积累。最近看设计模式的书,对于每个模式,用C++写了个小例子,加深一下理解。主要参考《大话设计模式》和《设计模式:可复用面向对象软件的基础》两本书。本文介绍工厂模式的实现。 工厂模式属于创
2013-06-14 16:04:45
444
原创 MFC-listctrl用法
ListCtrl用法1. CListCtrl 风格 LVS_ICON: 为每个item显示大图标 LVS_SMALLICON: 为每个item显示小图标 LVS_LIST: 显示一列带有小图标的item LVS_REPORT: 显示item详细资料 直观的理解:windows资
2013-05-29 17:16:25
740
原创 windows获取时间差毫秒级
//精确时钟查询。 void TestHighTimer(void) { // LARGE_INTEGER nFreq; LARGE_INTEGER nLastTime1; LARGE_INTEGER nLastTime2; //获取是否支持精确定时器。 if (
2013-05-27 14:47:46
980
原创 调试MFC打印输出
在调试MFC程序时,我们经常需要查看特定位置变量的输出值。或者在某特定条件执行时,给出一个输出标识。一般来说,有3种方法:1) 调用TRACE(LPCTSTR lpszFormat, ...)函数 在MFC中使用TRACE函数来打印输出结果却是非常方便,和在控制台程序中使用printf函数的使用方法和效果类似。不过有几点 需要注意:一,TRACE函数的输出是在Out
2013-05-27 11:19:48
1076
原创 MFC--TabControl用法
TabControl的用法总结下面我自己总结总结:TabControl的使用原理:窗口上添加TabControl控件之后,通过建立一个关联的CTabCtrl类型的变量来操作控件,然后第一页面的具体实现细节,通过类来实现.TabControl具体的使用方法:第一步:通过向导建立一个mfc的基于对话框应用程序项目.然后在窗口中添加TabControl控件
2013-05-17 15:30:22
1011
原创 MFC--CDIALOGBAR停靠优先级
完全可以的,我已经试验成功了.方法比较复杂CFrameWnd中停靠的优先顺序是由一个叫dwDockStyle的DWORD数组决定的该数组定义如下:const DWORD CFrameWnd::dwDockBarMap[4][2] ={{ AFX_IDW_DOCKBAR_TOP, CBRS_TOP },{ AFX_IDW_DOCKBAR_BOTTOM,
2013-05-16 15:49:24
801
原创 MFC--CDIALOGBAR
CDialogBar的创建和使用一个朋友让我看一个关于DialogBar的程序,问题是在一个DialogBar中添加一个Tree Control控件,在初始化函数OnInitDialog中使用InsertItem添加一项,结果运行后,始终在DialogBar中显示不出来,后来我又加入了一个Button测试,结果Button是灰色的,根本不能点击。在OnInitDialog中加入断点,程序根本执
2013-05-15 17:10:35
976
原创 MFC - 树TreeCtrl使用
1. 新建一名为“Tree”的对话框(Dialog based)应用程序项目(MFC AppWizard(EXE)),完成后的效果如下: 2. 将原有的一个标签(静态文本框)和两个命令按钮删除,然后往其中添加一个Tree Control,一个List Box,五个Button,完成后的效果如下图: 各控件属性见下表:
2013-05-14 09:38:59
915
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人