自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(40)
  • 收藏
  • 关注

转载 VC++调试TRACE和断点的使用

难怪很多前辈说调试是一个程序员最基本的技能,其重要性甚至超过学习一门语言。不会调试的程序员就意味着他即使会一门语言,却不能编制出任何好的软件。VC中调试工具使用简介WatchVC支持查看变量、表达式和内存的值。所有这些观察都必须是在断点中断的情况下进行。观看变量的值最简单,当断点到达时,把光标移动到这个变量上,停留一会就可以看到变量的值。VC提供一种被成为Watch的机制来观看

2013-08-06 16:07:07 821

转载 删除一个指针之后要置为NULL

删除一个指针之后可不要就跟着悲剧了啊……      众所周知,最开始我们用new来创建一个指针,那么等我们用完它之后,一定要用delete将该指针删掉。但是,值得注意的是,难道就仅仅是删除这个指针这么简单的么?下面,我们用一个程序来说明这个问题:?12345678910111213141

2013-07-29 15:41:14 1172 1

转载 字符串比较

//   CString strtemp;//   char buf[INAMELENGTH + 1];//   memcpy(buf,dighistinfo.chIName,INAMELENGTH);//   buf[INAMELENGTH] = '\0';//   strtemp.Format("%s",buf);// //    if(strtemp != IName

2013-07-26 11:56:12 450

转载 Windows 进程间通信(八)共享内存(FileMapping)

这时我们使用文件映射实现共享内存。FileMapping用于将存在于磁盘的文件放进一个进程的虚拟地址空间,并在该进程的虚拟地址空间中产生一个区域用于“存放”该文件,这个空间就叫做File View,系统并同时产生一个File Mapping Object(存放于物理内存中)用于维持这种映射关系,这样当多个进程需要读写那个文件的数据时,它们的File View其实对应的都是同一个Fi

2013-07-26 10:26:50 800

转载 共享内存的使用

共享内存的使用  在Windows操作系统下,任何一个进程不允许读取、写入或是修改另一个进程的数据(包括变量、对象和内存分配等),但是在某个进程内创建的文件映射对象的视图却能够为多个其他进程所映射,这些进程共享的是物理存储器的同一个页面。因此,当一个进程将数据写入此共享文件映射对象的视图时,其他进程可以立即获取数据变更情况。为了进一步提高数据交换的速度,还可以采用由系统页文件支持的内存映射

2013-07-26 10:05:49 469

转载 CreateFileMapping实现的共享内存及用法

在32位的Windows系统中,每一个进程都有权访问他自己的4GB(232=4294967296)平面地址空间,没有段,没有选择符,没有near和far指针,没有near和far函数调用,也没有内存模式。每个进程都有独立的4GB逻辑地址空间,32位的Windows系统允许每一个进程独立访问自己的内存,即独立于其它进程,也即它自己的32位逻辑地址空间。操作系统将把每一个进程的逻辑地址转换成实际的

2013-07-25 15:06:41 612

转载 CArray 剖析

http://hi.baidu.com/xueer8835/item/4ec2112e5824dd0d72863ed3我们在使用vc进行比较复杂的编程时,经常需要用到复杂的数组结构,并希望能实现动态管理。由于C++并不支持动态数组,MFC提供了一个CArray类来实现动态数组的功能。有效的使用CArray类,可以提高程序的效率。MFC提供了一套模板库,来实现一些比较常见的数据结构如Arra

2013-07-18 15:45:05 515

转载 windows笔记-【内核对象线程同步】等待定时器内核对象

等待定时器是在某个时间或按规定的间隔时间发出自己的信号通知的内核对象。它们通常用来在某个时间执行某个操作。创建等待定时器HANDLE CreateWaitableTimer(   PSECURITY_ATTRIBUTES psa,   BOOL fManualReset,   PCTSTR pszName);psa和pszName这两个参数(见内核对象的安全性 

2013-07-17 11:48:39 455

转载 搜集的一些关于CreateWaitableTimer的资料_等待定时器

http://hi.baidu.com/liuyide/item/7a873b4d80c59ee3bdf451a9通过异步程序调用(APC)实现的定时功能定时器是一个在特定时间或者规则间隔被激发的内核对象。结合定时器的异步程序调用可以允许回调函数在任何定时器被激发的时候执行。本文的例子代码显示了如何实现。  使用本定时器时,你需要把常量_WIN32_WINNT定义为0x04

2013-07-17 11:41:12 1036

转载 多线程编程(12) - 多线程同步之 Semaphore (信号对象)(转自万一博客)

http://yjxandsp.blog.163.com/blog/static/16367971201071601423713/之前已经有了两种多线程的同步方法:CriticalSection(临界区) 和 Mutex(互斥), 这两种同步方法差不多, 只是作用域不同;CriticalSection(临界区) 类似于只有一个蹲位的公共厕所, 只能一个个地进; Mutex(互斥)

2013-07-16 17:19:48 528

转载 单核双核多线程的简单问题

问题一:主线程里用函数CreateThread(NULL,0,ThreadProc,NULL,0,NULL)创建一个线程后是马上去执行ThreadProc还是要等待主线程的时间片到期后再去执行ThreadProc呢??问题二:比如我在主线程创建了2个线程,单核cpu是不是按照创建线程的顺序执行一个线程,然后等该线程时间片到期了再去执行另外一个线程?双核cpu是2个进程同时执行吗?还是像

2013-07-11 11:17:14 2052

转载 【Windows】线程漫谈——线程同步之等待函数和事件内核对象

http://www.cnblogs.com/P_Chou/archive/2012/07/03/waitobject-and-event-in-thread-sync.htmlWindows】线程漫谈——线程同步之等待函数和事件内核对象 本系列意在记录Windwos线程的相关知识点,包括线程基础、线程调度、线程同步、TLS、线程池等。 用内核对象进行线程同步内

2013-04-28 13:51:47 642

转载 对于线程同步的理解

http://hi.baidu.com/gamedot/item/6d1d985de3c49017abf6d7d1 什么是线程同步?为什么需要线程同步?如何实现线程的同步?这是在学线程时,学生们经常会困惑的问题。我们从一个例子说明,这三个问题以及解决方案:我们知道一般我们在银行开设一个帐户,银行会给我们一个存折和一个借记卡。我们可以分别拿卡或者存折来对一个帐户进行存取款操作。假设一个帐

2013-04-28 13:20:44 582

转载 多线程

http://wenku.baidu.com/view/e81eea4efe4733687e21aa07.html

2013-04-28 11:54:59 358

转载 CreateEvent

http://chinaxyw.iteye.com/blog/548622首先介绍CreateEvent是创建windows事件的意思,作用主要用在判断线程退出,程锁定方面.CreateEvent 函功能描述:创建或打开一个命名的或无名的事件对象.EVENT有两种状态:发信号,不发信号。 SetEvent/ResetEvent分别将EVENT置为这两种状态分别是发信号与

2013-04-28 10:00:02 446

转载 用函数指针变量调用函数

http://www.cnblogs.com/zxl2431/archive/2011/03/25/1995285.html  (一) 用函数指针变量调用函数  可以用指针变量指向整形变量、字符串、数组、结构体、也可以指向一个函数。一个函数在编译时被分配一个入口地址。这个入口地址就称为函数指针。可以用一个指针变量指向函数,然后通过该指针变量调用此函数。用简单的数值比较为例:

2013-04-24 15:20:40 1573

转载 临界区

http://www.cnblogs.com/zhangpengshou/archive/2009/07/19/1526632.htmlVC多线程临界区(转)      在使用多线程时,一般很少有多个线程完全独立的工作。往往是多个线程同时操作一个全局变量来获取程序的运行结果。多个线程同时访问同一个全局变量,如果都是读取操作,则不会出现问题。如果是写操作,则会发生错误。这时候,我们可以通过临

2013-04-24 14:00:43 489

转载 内核对象

1. 什么是内核对象内核对象是操作系统为一些系统级的对象(像进程,线程,信号量)维护的一些数据结构。这些数据构保存了与系统级对象相关的系统级信息。例如:所有内核对象都会保存该对象的引用计数。进程对象会保存进程ID。文件对象会保存当前字节偏移量,共享模式,打开模式等。操作系统中所有内核对象对是保存在一块内存空间中,系统上所有的进程都共享这一块内存空间。 2.内核对象的访问方式

2013-04-24 11:25:37 403

转载 多线程

http://hi.baidu.com/ruiqing_2008/item/62df6227185f91d4a517b607http://hi.baidu.com/girlkoo/item/785e47c7bc162f7088ad9e40http://hi.baidu.com/vc_net/item/e8871cb808da3fa5ebba935ehttp://www.cnblogs.

2013-04-23 16:00:22 453

转载 _beginThreadex的用法

建议创建线程应该用_beginThreadex,ripple里面就是用的这个。例子如下://sipvoiplink.hclass SIPVoIPLink{private:       static unsigned __stdcall ReceivingThrd(void * pParam);} //sipvoiplink.c

2013-04-23 15:44:54 481

转载 WaitForSingleObject和WaitForMultipleObjects

在多线程下面,有时候我们会希望等待某一线程完成了再继续做其他事情,要实现这个目的,可以使用Windows API函数WaitForSingleObject,或者WaitForMultipleObjects这两个函数都会等待Object被标为有信号(signaled)时才返回的那么,什么是信号呢?简单来说,Windows下创建的Object都会被赋予一个状态量。如果Objec

2013-04-23 14:51:16 671

转载 WaitForSingleObject的用法

WaitForSingleObject的用法                                        1.WaitForSingleObject的用法 DWORDWaitForSingleObject(                     HANDLE hHandle,                      DWORD dw

2013-04-23 10:48:00 537

转载 AfxBeginThread的介绍/基本用法

在进行多线程程序设计的时候,我们经常用到AfxBeginThread函数来启动一条线程 AfxBeginThread    用户界面线程和工作者线程都是由AfxBeginThread创建的。现在,考察该函数:MFC提供了两个重载版的AfxBeginThread,一个用于用户界面线程,另一个用于工作者线程,分别有如下的原型和过程:用户界面线程的AfxBeginThread 用户界

2013-04-22 11:25:09 1677

转载 指向函数的指针

(一) 用函数指针变量调用函数  可以用指针变量指向整形变量、字符串、数组、结构体、也可以指向一个函数。一个函数在编译时被分配一个入口地址。这个入口地址就称为函数指针。可以用一个指针变量指向函数,然后通过该指针变量调用此函数。用简单的数值比较为例: 1 #include stdio.h> 2 #include stdlib.h> 3 4  int main() 5

2013-04-19 17:26:10 311

转载 GetPrivateProfileInt()

GetPrivateProfileInt() 从私有初始化文件获取整型数值 GetPrivateProfileString() 从私有初始化文件获取字符串型值 GetProfileInt 从win.ini 获取整数值 GetProfileString 从win.ini 获取字符串值 WritePrivateProfileString 写字符串到私有初始化文件 WriteProfileString

2013-04-19 16:29:42 1152

转载 》[MFC] CDialog::DoModal()函数用法

5.2 创建有模式对话框使用有模式对话框时在对话框弹出后调用函数不会立即返回,而是等到对话框销毁后才会返回(请注意在对话框弹出后其他窗口的消息依然会被传递)。所以在使用对话框时其他窗口都不能接收用户输入。创建有模式对话框的方法是调用CDialog::DoModal()。下面的代码演示了这种用法:CYourView::OnOpenDlg(){ CYourDlg dlg; in

2013-04-18 17:03:44 688

转载 VC中TRACE()的用法,终于学会了点皮毛,好累

http://hi.baidu.com/qq453158783/item/7842183a9875e7cc392ffa37个人总结:最近看网络编程是碰到了TRACE语句,不知道在哪里输出,查了一晚上资料也没找出来,今天终于在CSDN上找到了,真是个高地方啊,方法如下:1.在MFC中加入TRACE语句2.在TOOLS->MFC TRACER中选择 “ENABLE TRACING”点击

2013-04-18 15:01:52 383

转载 GetTickCount函数

函数功能:GetTickCount返回(retrieve)从操作系统启动到现在所经过(elapsed)的毫秒数,它的返回值是DWORD。AfxGetApp( )这个函数可以得到当前应用进程的指针 3。memset() 函数常用于内存空间初始化。如:char str[100];memset(str,0,100);4。memset()的深刻内涵:用来对一段内存空间全部设置为

2013-04-18 10:57:21 829

转载 C的memcpy和strcpy的区别是什么?

strcpy是拷贝字符串,以\0为标志结束(即一旦遇到数据值为0的内存地址拷贝过程即停止)strcpy的原型为char *strcpy(char *dest, const char *src)而memcpy是给定来源和目标后,拷贝指定大小n的内存数据,而不管拷贝的内容是什么(不仅限于字符)memcpy的原型为void *memcpy(void *dest, const void

2013-04-18 10:47:14 386

转载 深入VC++消息映射与命令通知

http://write.blog.csdn.net/postlisthttp://greatverve.cnblogs.com/archive/2012/11/04/mfc-message.htmlhttp://blog.sina.com.cn/s/blog_4d82d2e10100dv3q.html

2013-04-17 14:18:02 412

转载 VC程序中实现控件的动态生成与响应

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

2013-04-17 14:10:20 384

转载 DDV_MaxChars() 函数

DDX_Text(pDX, IDC_USERNAME, m_username);DDV_MaxChars(pDX, m_username, 8);DDX_Text(pDX, IDC_PASSWORD, m_password);DDV_MaxChars(pDX, m_password, 8);DDX_Text(pDX, IDC_CONFIRMPASSWORD, m_confirmPa

2013-04-17 13:48:15 3754

转载 VC++技术内幕』学习笔记(10)

第十篇:模式对话框和通用控件(下)    大家好,雷神由于出差在外,所以笔记今天才写出抱歉。不知道大家有没有做上篇提到的计算器,计算器对雷神来说可是经典的程序,学VB先搞了计算器,学VC也搞了个计算器,前不久在学扩展CBUTTON类时也是用计算器程序,为什么?按钮多呗,雷神最终做出了一个圆形按钮,液晶显示的计算器,感觉真的不错。学编程就是要编写代码,代码写的多少和编程水平是成正比的。

2013-04-17 11:10:57 509

转载 VS2010/MFC编程入门之六(对话框:创建对话框模板和修改对话框属性)

鸡啄米在上一讲中介绍了MFC的消息映射机制,属于原理方面的知识。对于VC++编程入门学习者来说可能有些抽象,鸡啄米会把消息映射的知识渗透到后面的教程中。本节开始为大家讲解偏应用的知识-创建对话框。       对话框,大家应该很熟悉了,在我们常用的软件中大多都有对话框界面,例如,360安全卫士的主界面其实就是个对话框,只是它做了很多美工方面的工作,将其大大美化了。       创建对话框主

2013-04-17 08:37:58 794

转载 HANDLE OpenEvent

HANDLE:句柄,是Windows用来表示对象的(不是C++的对象),HWND是其中一种,HWND是HANDLE,但HANDLE不只是HWND,更具体的查MSDN吧。HANDLE(句柄)是windows操作系统中的一个概念。在window程序中,有各种各样的资源(窗口、图标、光标等),系统在创建这些资源时会为它们分配内存,并返回标示这些资源的标示号,即句柄。句柄指的是一个核心对象在某一个进程

2013-04-16 19:07:42 756

转载 AfxEnableControlContainer() ---转载

要想在应用程序中使用ActiveX控件,必须使你的应用程序成为ActiveX控件包容器。ActiveX   控件包容器就是完全支持ActiveX控件,并能把控件组合进自己的窗口或对话框的父应用程序。利用MFC的AppWizard,你可以很方便地创建你的包容器程序。事实上,在用AppWizard创建新的应用程序时,你的应用程序就被缺省设置为控件包容器,即在第3步选中支持ActiveX   Contr

2013-04-16 18:58:16 411

转载 C++中内存块置0的三种方法:memset, ZeroMemory和SecurZeroMemory

加个前提:本文对应Windows下编程环境。简而言之:一般情况,如初始化内存块的时候,用ZeroMemory。销毁内存块中储敏感数据时或者释放存有敏感数据(比如密码,密钥等)的内存块前应使用使用SecurZeroMemory。如无特殊原因不使用“={ 0 }”。使用memset函数将内存块置0是完全没有问题。memset的好处是跨平台比较容易,可是C/C++跨平台就是梦魇。在使用mem

2013-04-16 18:43:35 1579

转载 CreateFileMapping实现的共享内存及用法

在32位的Windows系统中,每一个进程都有权访问他自己的4GB(232=4294967296)平面地址空间,没有段,没有选择符,没有near和far指针,没有near和far函数调用,也没有内存模式。每个进程都有独立的4GB逻辑地址空间,32位的Windows系统允许每一个进程独立访问自己的内存,即独立于其它进程,也即它自己的32位逻辑地址空间。操作系统将把每一个进程的逻辑地址转换成实际的

2013-04-16 18:43:13 778

转载 追根究底,剖析MFC六大关键技术(转)

追根究底,剖析MFC六大关键技术题外话:我并不认为MFC减轻了程序员们的负担,MFC出现的目的虽然似乎是为了让程序员不用懂得太多就可以进行视窗编程,但本人在MFC里徘徊了很久很久(因为那时没有书本详细介绍MFC的原理),毫无收获。可能朋友们会说,怎么一定要了解MFC的具体呢,“黑箱”作业不行吗?这不是微软的初衷吗?不行!!!如果这样,我宁愿永远不选择MFC!在学电脑之前,本人学习的东西

2013-04-16 16:34:00 317

转载 vc6.0一个workspace包含多个项目

首先vc一般新建一个项目(workspace)都是一个project, 如果需要多个工程: 方法1:新建一个工程,然后选中“add to current workspace”即可。 方法2:已有工程,可以通过“project”菜单->“insert project to workspace"加入已有的菜单。 一起调试的问题: 首先一个workspace里面有多个工程的时

2013-04-16 13:52:09 527

空空如也

空空如也

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

TA关注的人

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