自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(58)
  • 资源 (4)
  • 收藏
  • 关注

原创 volatile在多线程中的使用

1. 为什么用volatile?    C/C++ 中的 volatile 关键字和 const 对应,用来修饰变量,通常用于建立语言级别的 memory barrier。这是 BS 在 "The C++ Programming Language" 对 volatile 修饰词的说明:A volatile specifier is a hint to a compiler that

2014-03-10 16:37:18 628

转载 从问题看本质:socket到底是什么?

一、问题的引入——socket的引入是为了解决不同计算机间进程间通信的问题1.socket与进程的关系1).socket与进程间的关系:socket   用来让一个进程和其他的进程互通信息(IPC),而Socket接口是TCP/IP网络的API接口函数。2).进程间通信(本机内)进程间通信(不同计算机,要联网)2、socket与文件的关系——如何理解socket是种特殊

2014-03-10 11:32:01 608

转载 用完成端口开发大响应规模的Winsock应用程序

通常要开发网络应用程序并不是一件轻松的事情,不过,实际上只要掌握几个关键的原则也就可以了――创建和连接一个套接字,尝试进行连接,然后收发数据。真正难的是要写出一个可以接纳少则一个,多则数千个连接的网络应用程序。本文将讨论如何通过Winsock2在Windows NT 和 Windows 2000上开发高扩展能力的Winsock应用程序。文章主要的焦点在客户机/服务器模型的服务器这一方,当然,其中的

2014-03-10 11:19:31 547

转载 STL中关联容器map的用法详解

Map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,它完成有可能在我们处理一对一数据的时候,在编程上提供快速通道。这里说下map内部数据的组织,map内部自建一颗红黑树(一种非严格意义上的平衡二叉树),这颗树具有对数据自动排序的功能,所以在map内部所有的数据都是有序的,后

2013-11-28 17:19:02 972 1

转载 QT理论试题

1.以下关于QT的描述正确的是: a.       是一个不跨平台的C++图形用户界面b.      由挪威TrollTech公司出品c.       只支持Unix、Linuxd.      QT API和开发工具对所支持的平台是不一致的2.以下关于QT的描述不正确的是:a.       QT支持2D图形渲染b.      QT支持3D图形渲染c.       Q

2013-11-27 17:03:44 7481 3

转载 QT 的信号与槽机制介绍

QT是一个跨平台的 C++ GUI 应用构架,它提供了丰富的窗口部件集,具有面向对象、易于扩展、真正的组件编程等特点,更为引人注目的是目前 Linux 上最为流行的KDE桌面环境就是建立在QT 库的基础之上。QT支持下列平台:MS/WINDOWS-95、98、NT和 2000;UNIX/X11-Linux、Sun Solaris、HP-UX、Digital Unix、I

2013-11-27 16:56:53 522

转载 云计算技术的产生、概念、原理、应用和前景

2006年谷歌推出了“Google 101计划”,并正式提出“云”的概念和理论。随后亚马逊、微软、惠普、雅虎、英特尔、IBM等公司都宣布了自己的“云计划”,云安全、云存储、内部云、外部云、公共云、私有云……一堆让人眼花缭乱的概念在不断冲击人们的神经。那么到底什么是云计算技术呢?对云计算技术的产生、概念、原理、应用和前景又在哪里?一、云计算思想的产生    传统模式下,企业建立一套I

2013-11-27 12:07:10 10113

转载 iostream 与iostream.h区别(转)

C++的标准类库被修订了两次,有两个标准 C92和C99,这两个库现在都在并行使用,用 .h 包含的是c92 ,不带 .h 的是c99的头文件,对于普通用户来说这两者没有什么区别,区别是在内部函数的具体实现上。旧的C++头文件是官方明确反对使用的,但旧的C头文件则没有(以保持对C的兼容性)。据说从 Visual C++ .NET 2003 开始,移除了旧的 iostream 库。其实编译器制造商不

2013-11-26 22:40:23 461

转载 三十分钟掌握STL

http://net.pku.edu.cn/~yhf/UsingSTL.htm原名是《using stl》,不知道是谁写的。不过我倒觉得很有趣,所以化了两个晚上把它翻译出来。我没有对翻译出来的内容校验过。如果你没法在三十分钟内觉得有所收获,那么赶紧扔了它。文中我省略了很多东西。心疼那,浪费我两个晚上。译者:karySTL概述STL的一个重要特点是数据结构和算法的分离。尽管这是个简单

2013-11-26 22:32:37 435

转载 VC/Win32 GetMessage/PeekMessage的执行次序

GetMessage/PeekMessage的执行次序        1 先去程序(线程)消息队列中检查有没   有消息如果有消息,检查 指定条件   (窗口句柄ID,范围)是否满足条件,   如果满足条件取出消息。        2 如果程序(线程)消息队列中没有消息   向系统队列中获取 本应用程序的消息,   系统队列的当前消息是 本应用程序的,   系统转发

2013-11-24 21:24:36 576

转载 VC/Win32 消息队列的关系

1 消息队列     用于存放消息的队列,消息在队列中先进先出。     所有窗口都有消息队列,程序从队列中取消息。   2 消息队列的类型     2.1 系统消息队列        由系统维护的消息队列,存放系统产生的消息 例如:键盘消息、鼠标消息。     2.2 程序消息队列        属于程序(线程)的消息队列,由程序( 线程)自己维护。

2013-11-24 21:23:38 956

转载 VC/Win32 消息的分类

二 消息的分类   1 系统消息 - 消息ID的范围 0—0x03FF(1024个)       系统已经定义的消息,所以程序都可以直接       使用,例如:WM_CREATE等。   2 用户自定义消息 - 消息ID范围0x0400-0x7FFF     由用户自己定义,满足用户自己的需要。用户     自己负责发送,自己负责响应(处理)。     定义了一个宏W

2013-11-24 21:23:03 655

转载 VC/Win32 消息的发送 SendMessage/PostMessage

4.2 消息的发送      4.2.1 SendMessage/PostMessage      LRESULT SendMessage(   HWND hWnd,      // 窗口句柄。   UINT Msg,       // 消息的ID   WPARAM wParam,  // 消息的参数1   LPARAM lParam   // 消息的参数2 ); 

2013-11-24 21:22:33 876

转载 VC/Win32 消息的获取GetMessage/PeekMessage

GetMessage - 从系统中获取消息,将消息从系统                   中移除,阻塞函数,当系统中没有     消息时,GetMessage函数阻塞,     等候下一条消息。      PeekMessage - 以查找的方式从系统中获取消息                   可以不将消息从系统中移除,非     阻塞函数,当系统中没有消息时 

2013-11-24 21:21:51 1440

转载 win32函数 MoveWindow使用说明

BOOL MoveWindow(  HWND hWnd,      // 窗口句柄。  int X,          // 水平位置。  int Y,          // 垂直位置。  int nWidth,     // 窗口的宽度。  int nHeight,    // 窗口的高度。  BOOL bRepaint   // 重绘标识。(TRUE));

2013-11-24 21:21:22 3358

转载 win32常用的消息WM_SIZE - 窗口的大小发生变化后

WM_SIZE - 窗口的大小发生变化后,会收到        这个消息。 WPARAM - 窗口大小变化的原因。 LPARAM - 变化后客户区的大小。   LOWORD - 变化后的宽度。   HIWORD - 变化后的高度。 case WM_SIZE:  OnSize( hWnd, wParam, lParam );  break; }

2013-11-24 21:20:51 7749

转载 win32常用的消息WM_CREATE - 窗口创建成功,但还未显示之前

WM_CREATE - 窗口创建成功,但还未显示之前        收到这个消息。 常用于初始化窗口的参数,资源等等,包括 子窗口的创建。 WPARAM - 不使用。 LPARAM - 保存一个结构体的地址,结构体          中保存了CreateWindow/Ex中的最   后一个参数。  case WM_CREATE:  OnCreat

2013-11-24 21:20:17 1365

转载 win32常用的消息WM_SYSCOMMAND - 系统命令消息

WM_SYSCOMMAND - 系统命令消息,当点击        最大化按钮,最小化按钮,关闭按钮等。 都会收到这个消息。 常用于窗口关闭时提示用户处理。 WPARAM - 具体的命令,例如 关闭 SC_CLOSE LPARAM - 鼠标的位置        LOWORD - 低16位 ,水平位置。        HIWORD - 高16位 ,垂直位置。

2013-11-24 21:19:40 1242

转载 win32常用消息WM_DESTROY - 窗口销毁时的消息

WM_DESTROY - 窗口销毁时的消息,无消息        参数,常用于窗口销毁之前做善后处理, 例如:资源和内存的回收等。 case WM_DESTROY:      PostQuitMessage( 0 );      break;

2013-11-24 21:19:07 803

转载 消息相关的函数DispatchMessage - 派发消息

将消息派发到 消息所属 的窗口处理函数        LRESULT DispatchMessage(          CONST MSG *lpmsg           //准备派发的消息的BUFF          ); void Message( ){ MSG msg = { 0 }; while( GetMessage( &msg, NULL,

2013-11-24 21:18:34 960

转载 消息相关的函数TranslateMessage - 翻译消息

将按键消息(不包括不可见字符的按键)  翻译成字符消息。        BOOL TranslateMessage(         CONST MSG *lpMsg//准备翻译的消息的BUFF.         );  检查是否是按键消息,如果不是按键消息  不做任何处理,继续执行。 void Message( ){ MSG msg = { 0 };

2013-11-24 21:18:01 646

转载 消息相关的函数 GetMessage - 获取消息

BOOL GetMessage(   LPMSG lpMsg,//存放获取到的消息的BUFF   HWND hWnd,// 窗口句柄。   UINT wMsgFilterMin,//获取消息的最小ID   UINT wMsgFilterMax//获取消息的最大ID );//当获取到WM_QUIT消息,就返回0,其余     消息返回非0. lpMsg:当获取到消息后

2013-11-24 21:17:18 1342

转载 win32 windows消息处理机制tagMSG

消息机制    2.1 消息的定义       每个消息都具有一个ID,同时消息还带有两个       附加参数。需要用到的函数有以下几个,请在本站的下一主题等查看:struct tagMSG 消息结构体 窗口处理函数       LRESULT CALLBACK WindowProc(   HWND hwnd,      // 窗口句柄。   UINT u

2013-11-24 21:16:11 1577

转载 窗口的创建CreateWindow/CreateWindowEx函数使用说明

CreateWindow/CreateWindowEx     HWND CreateWindowEx(  DWORD dwExStyle,      // 窗口的扩展风格。  LPCTSTR lpClassName,  // 窗口类名。  LPCTSTR lpWindowName, // 窗口标题栏的文字信息  DWORD dwStyle,        // 窗口的基本风格

2013-11-24 21:15:28 4528

转载 VC/win32 windows 窗口的注册和创建

windows 窗口的注册和创建   1 窗口创建的过程     1.1 定义WinMain函数     1.2 定义窗口处理函数 WindowProc     1.3 注册窗口类(WNDCLASS, RegisterClass)     1.4 创建窗口(CreateWindow)     1.5 显示窗口(ShowWindow/UpdateWindow)     1

2013-11-24 21:14:26 701

转载 VC/MFC 工具栏上动态添加组合框等控件的方法

引言  工具条作为大多数标准的Windows应用程序的一个重要组成部分,使其成为促进人机界面友好的一个重要工具。通过工具条极大方便了用户对程序的操作,但是在由Microsoft Visual C++开发环境所创建的应用程序框架中的工具条只是一个简单的按钮的集合,在功能上也仅仅是起到了菜单快捷方式的作用,而没有做到象VC、Word等软件的工具条那样,提供多种不同类型的标准控件如组合框、编

2013-11-24 20:57:40 1096

转载 vc CreateWindow创建窗口控件及设置字体

vc CreateWindow创建窗口控件及设置字体 HWND hBtn, hEdit, hText, hCombBox; hBtn = CreateWindow(   //按钮创建  "button",  "创建的按钮",  WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON|BS_CENTER|BS_VCENTER,  100,100,90,28, 

2013-11-24 20:55:38 2216

原创 WIN32 SDK 创建一个窗体的过程

一.窗口的创建过程1.设计窗口类2.注册窗口类3.创建窗口4.显示窗口 #include   //回调函数声明LRESULT CALLBACK MyProc( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam );  //主函数int WINAPI WinMain( HINSTANCE hInsta

2013-11-24 20:38:07 1735

转载 VC动态创建控件

动态控件是指在需要时由Create()创建的控件,这与预先在对话框中放置的控件是不同的。一、创建动态控件:为了对照,我们先来看一下静态控件的创建。  放置静态控件时必须先建立一个容器,一般是对话框,这时我们在对话框编辑窗口中,从工具窗口中拖出所需控件放在对话框中即可,再适当修改控件ID,设置控件属性,一个静态控件就创建好了,当对话框被显示时,其上的控件也会显示。  静态控件不需要调

2013-11-24 15:54:17 746

原创 一个多维数组所有元素输出问题

笔试题:多维数组全部元素输出。   昨天有个兄弟去面试,碰到一个这样的笔试题:有一个三维数组,数组的维数2*2*3,要求只用一个for循环,按顺序全部输出数组元素。借此机会温习下数组与指针的关系。先做题:数组的元素都是存储在一个连续的地址中的,我认为只要找到该数组的第一个元素的地址,那么就只要按照地址递增计算就能把所有的元素输出了:int main(int argc, char

2013-11-22 11:58:03 1693

原创 一个美观的进度条的使用

之前做一个项目的时候需要用到进度条,当时就觉得MFC提供的实在是太难看,后来在网上扒拉了一个比较好看的。该进度条是继承了CStatic控件,所以在使用时,需要添加一个CStatic控件,才能使用。该类的名称为CKCBusyProgressCtrl。具体的函数使用,我就不解释了,这是我做的一个例子,如图:该控件能改变前景色,边框颜色,运行速度,闪动个数,等等,如图

2013-11-20 14:03:02 3059

转载 MFC消息循环 (转)

MFC应用程序中处理消息的顺序1.AfxWndProc()  该函数负责接收消息,找到消息所属的CWnd对象,然后调用AfxCallWndProc。2.AfxCallWndProc() 该函数负责保存消息(保存的内容主要是消息标识符和消息参数)供应用程序以后使用,然后调用WindowProc()函数。3.WindowProc()  该函数负责发送消息到OnWndMsg()函数,如果未被

2013-11-18 11:16:50 917

转载 套接字编程(VC_Win32)

套接字概述  简介(源于维基)Berkeley套接字(也作BSD套接字应用程序接口)刚开始是4.2BSD Unix操作系统(于1983发布)的一套应用程序接口。然而,由于AT&T的专利保护着UNIX,所以只有在1989年Berkeley大学才能自由地发布自己的操作系统和网络库。Berkeley套接字接口,一个应用程序接口(API),使用一个Internet套接字的概念,使主机间或者一台

2013-11-18 10:37:16 948

转载 Socket模型详解

1.两种I/O模式阻塞模式:执行I/O操作完成前会一直进行等待,不会将控制权交给程序。套接字默认为阻塞模式。可以通过多线程技术进行处理。非阻塞模式:执行I/O操作时,Winsock函数会返回并交出控制权。这种模式使用起来比较复杂,因为函数在没有运行完成就进行返回,会不断地返回 WSAEWOULDBLOCK错误。但功能强大。如果想在Windows平台上构建服务器应用,那么I/O模型是

2013-11-18 10:08:01 390

原创 c++笔试基础题(4)

1.派生类与基类的转换答:派生类转换为基类又称为向上转换,它总是隐含进行的,派生类转换为基类总是合法和自动的。也就是说,派生类总是可以转换为基类的引用类型。如果有一个派生类型的对象,则可以使用它的地址对基类的指针进行赋值或初始化。同样,可以使用派生的引用或对象初始化基类的引用。在可以确定基类转换为派生类是安全的情况下,可以使用强制转换完成基类转换为派生类,基类是不会自动转换为派

2013-11-13 16:22:00 704

原创 c++笔试基础题(3)

1. 数组指针与指针数组的区别?答:数组指针的概念:指向一个数组的指针就是数组指针。指针数组的概念:如果一个数组的每一个元素都是指针,则称为指针数组。数组指针是一个指针变量,它指向一个数组,而指针数组是一个只包含指针元素的数组,它的元素可以指向相同类型的不同对象。2.什么是函数指针,如何使用函数指针。答:函数指针的概念:函数指针就是指向函数的指针。函数指针就是指向函数的

2013-11-12 22:31:54 593

原创 SQL笔试题

1.触发器的作用? 答:触发器是一中特殊的存储过程,主要是通过事件来触发而被执行的。它可以强化约束,来维护数据的完整性和一致性,可以跟踪数据库内的操作从而不允许未经许可的更新和变化。可以联级运算。如,某表上的触发器上包含对另一个表的数据操作,而该操作又会导致该表触发器被触发。 2.什么是存储过程?用什么来调用? 答:存储过程是一个预编译的SQL语句,优点是允许模块化的设

2013-11-12 14:18:28 653

原创 网络编程笔试题

1.ISO的七层模型是什么?tcp/udp是属于哪一层?tcp/udp有何优缺点?答:分为下面7层:应用层,表示层,会话层,运输层,网络层,物理链路层,物理层tcp /udp属于运输层TCP 服务提供了数据流传输、可靠性、有效流控制、全双工操作和多路复用技术等。与 TCP 不同, UDP并不提供对 IP协议的可靠机制、流控制以及错误恢复功能等。由于 UDP比较简单, UDP头包含很

2013-11-12 11:28:22 1200 2

原创 操作体统基础笔试题

1.列举几种进程的同步机制,并比较其优缺点。答:原子操作,信号量机制,自旋锁,管程,会合,分布式系统2.进程之间通信的途径答:共享存储系统,消息传递系统,管道:以文件系统为基础3.进程死锁的原因答:资源竞争及进程推进顺序非法4.死锁的4个必要条件答:互斥、请求保持、不可剥夺、环路5.死锁的处理答:鸵鸟策略、预防策略、避免策略、检测与解除死锁6.操作系统中进程

2013-11-12 11:26:41 13143

原创 C++笔试基础题(2)

22. 条件语句有哪几种形式?答:条件语句分为if,if...else...和if...else if...else 3种形式。23.条件语句如何嵌套、如何匹配else字句?答:条件语句可以在不同的执行语句作用域内进行嵌套,else字句通过{}划分作用域来实现匹配。24.for循环语句的计算顺序是什么?答:for语句的执行顺序是先从左至右执行循环条件语句,如果循环条件语句

2013-11-11 22:47:34 772

自绘对话框以及按钮

自绘带有立体感的对话框,动感的按钮。希望有人能用得着。

2013-11-22

一个美观的进度条

这是一个CKCBusyProgressCtrl类型的进度条,该进度条可设计背景颜色,前景颜色,边框颜色,移动速度,方框个数等,功能

2013-11-21

struts+hibernate+spring学习宝典

这是一本学习struts+hibernate+spring的书

2013-08-14

Qt 动画 如何实现动画

Qt动画框架是Kinetic项目的一部分,主要目的是提供一种简单的方法用于创建动画的和平滑的GUI。通过Qt动画属性,Qt动画框架为部件和其他QObject对象的动画操作提供了非常大的自由性。Qt动画框架也能用于图形视图框架中。

2012-10-29

空空如也

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

TA关注的人

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