Welcome 微信登录

首页 / 软件开发 / C++

MFC教程(9)-- MFC的进程和线程(2)

MFC教程(9)-- MFC的进程和线程(2)

MFC教程(9)-- MFC的进程和线程(2)2010-03-26下面以一个动态链接到MFC DLL的单模块应用程序为例,说明这些对象的创建过程。当第一次访问状态信息时,比如使用 AfxGetModuleState得到模块状态,导致系列创建过程的开始,如图9-7所示。首先分析语句pState=_afxThreadState。如果_afxThreadData、线程状态和模块状态还没有创建,该语句可以导致这些数据的创建。pState声明为CNoTrackObj...
完美的C++:C++/CLI

完美的C++:C++/CLI

完美的C++:C++/CLI2007-05-16 天极 刘涛什么是C++/CLI呢?C++当然指的是Bjarne Stroustrup在BELL实验室发明的C++语言,它实现了运行时取得速度和尺寸最佳化的静态对象模型,然而它除了堆分配外不支持程序的动态修改,它准许无限地接近底层设备,但在程序运行过程中几乎无法操作活动类型,也无法操作与程序相关联的底层结构。Herb Sutter,C++/CLI的主要构造者之一,称C++是一门“混凝土&rdquo...
MFC教程(10)-- 内存分配方式和调试机制

MFC教程(10)-- 内存分配方式和调试机制

MFC教程(10)-- 内存分配方式和调试机制2010-03-26M内存分配内存分配函数MFCWin32或者C语言的内存分配API,有四种内存分配API可供使用。Win32的堆分配函数每一个进程都可以使用堆分配函数创建一个私有的堆──调用进程地址空间的一个或者多个页面。DLL创建的私有堆必定在调用DLL的进程的地址空间内,只能被调用进程访问。HeapCreate用来创建堆;HeapAlloc用来从堆中分配一定数量的空间,HeapAlloc分配的内存是不能移...
超越C++:下一代C++--C++/CLI简介

超越C++:下一代C++--C++/CLI简介

超越C++:下一代C++--C++/CLI简介2007-05-16 天极 刘涛一、绪论 当微软推出VS.NET7实现了可扩展的托管C++后,C++程序员们反映不一。尽管大部分的程序员对于能够继续使用C++感到很欣慰,但几乎所有的人对于托管C++提供的晦涩语法感到很痛苦。微软明显从反馈中感觉到托管C++不是那么成功。 2003年10月6日,ECMA(欧洲计算机制造商协会)宣布成立专家组,负责结合ISO标准C++与通用语言,开发一个可扩展语言的标准,这个新...
MFC教程(11)-- MFC下的文件类

MFC教程(11)-- MFC下的文件类

MFC教程(11)-- MFC下的文件类2010-03-26文件操作的方法使用Visual C++编程,有如下方法进行文件操作:(1)使用标准C运行库函数,包括fopen、fclose、fseek等。(2)使用Win16下的文件和目录操作函数,如lopen、lclose、lseek等。不过,在Win32下,这些函数主要是为了和Win16向后兼容。(3)使用Win32下的文件和目录操作函数,如CreateFile,CopyFile,DeleteFile,Fi...
C++/CLI程序进程之间的通讯

C++/CLI程序进程之间的通讯

C++/CLI程序进程之间的通讯2007-05-15 天极 谢启东编…现在,把大型软件项目分解为一些相交互的小程序似乎变得越来越普遍,程序各部分之间的通讯可使用某种类型的通讯协议,这些程序可能运行在不同的机器上、不同的操作系统中、以不同的语言编写,但也有可能只在同一台机器上,实际上,这些程序可看成是同一程序中的不同线程。而本文主要讨论C++/CLI程序间的通讯,当然,在此是讨论进程间通讯,而不是网络通讯。简介试想一个包含数据库查询功能的应用,通常有一个被称...
MFC教程(12)-- 对话框和对话框类CDialog(1)

MFC教程(12)-- 对话框和对话框类CDialog(1)

MFC教程(12)-- 对话框和对话框类CDialog(1)2010-03-26对话框经常被使用,因为对话框可以从模板创建,而对话框模板是可以使用资源编辑器方便地进行编辑的。模式和无模式对话框对话框分两种类型,模式对话框和无模式对话框。模式对话框一个模式对话框是一个有系统菜单、标题栏、边线等的弹出式窗口。在创建对话框时指定WS_POPUP, WS_SYSMENU, WS_CAPTION和 DS_MODALFRAME风格。即使没有指定WS_VISIBLE风格...
托管C++中函数调用的双重转换

托管C++中函数调用的双重转换

托管C++中函数调用的双重转换2007-05-16 Blog 蒋晟在VC.Net中使用默认设置/clr编译时,一个托管函数会产生两个入口点,一个是托管的,供托管代码调用,另外一个是非托管的,供非托管代码调用。但是函数地址,特别是虚函数指针只能有一个值,所以需要有一个默认的入口。 非托管入口点可能是所有调用的默认入口(在 Visual Studio .NET2003 中,编译器总是会选择非托管入口,但是在Visual Studio 2005中,如果参数或者...
MFC教程(12)-- 对话框和对话框类CDialog(2)

MFC教程(12)-- 对话框和对话框类CDialog(2)

MFC教程(12)-- 对话框和对话框类CDialog(2)2010-03-26RunModalLoop是一个实现自己的消息循环的示例,消息循环的条件是模式化状态没有结束。实现线程自己的消息循环见8.5.6节。当用户按下按钮“取消”、“确定”时,将导致RunModalLoop退出消息循环,结束对话框模式状态,并调用::EndDialog关闭窗口。有关关闭对话框的处理如下:void CDialog::EndDi...
托管C++中GDI+和GDI混合编程技术

托管C++中GDI+和GDI混合编程技术

托管C++中GDI+和GDI混合编程技术2007-05-16 天极 丁有和1.引言早期的Windows程序中,可以使用GDI(Graphics Device Interface,图形设备接口)在一个窗体中绘制图形、文本和图像,但它的功能比较有限,尤其是图像处理方面。GDI+是GDI的一个新版本,它不仅在GDI基础上添加许多新特性,而且对原有的GDI功能进行优化,并在为开发人员提供的二维矢量图形、文本、图像处理、区域、路径以及图形数据矩阵等方面构造了一系列相...
MFC教程(14)-- SOCKET类的设计和实现

MFC教程(14)-- SOCKET类的设计和实现

MFC教程(14)-- SOCKET类的设计和实现2010-03-28WinSock基本知识这里不打算系统地介绍socket或者WinSock的知识。首先介绍WinSock API函数,讲解阻塞/非阻塞的概念;然后介绍socket的使用。WinSock APISocket接口是网络编程(通常是TCP/IP协议,也可以是其他协议)的API。最早的Socket接口是Berkeley接口,在Unxi操作系统中实现。WinSock也是一个基于Socket模型的AP...
用托管C++编写Windows服务

用托管C++编写Windows服务

用托管C++编写Windows服务2007-05-16 天极 谢启东编…多年以来,只要提到编写Windows服务,就会想到用Visual C++编写,同时,这也是其中一件C++程序员可以做,而VB程序员不可以做的事情。以前,我们只称其为"服务"或"NT服务",现在,它们被命名为"Windows服务",而且用VB.NET或C#也可以很容易地编写。但是,如果你想用托管C++来编写呢?毕竟,大多数有经验...
FMD开发文集 -- CArchive原理

FMD开发文集 -- CArchive原理

FMD开发文集 -- CArchive原理2010-03-28冯明德MFC 提供CArchive类实现数据的缓冲区读写,同时定义了类对象的存储与读取方案。 以下对CArchvie 的内部实现作分析。一.概述 CArchive使用了缓冲区,即一段内存空间作为临时数据存储地,对CArchive的读写都先依次排列到此缓冲区,当缓冲区满或用户要求时,将此段整理后的数据读写到指定的存储煤质。当建立CArchive对象时,应指定其模式是用于缓冲区读,还是用于缓冲区写。...
用C设计 用C++编码

用C设计 用C++编码

用C设计 用C++编码2007-10-07 Csdn博客 孟岩《不得不看的两次从回归C的高手评论C++》中先是提了一下所谓C++带来的思想包袱(文言文曰“心智包袱”)问题,然后重重地引用了Linus的话:“关键是设计”,其实他是在暗示:好的设计C同样能做出来,不劳C++大驾;而C++一旦出面,就要让人背上额外的思想包袱。 我明确地表个态,在系统级程序设计中,事实就是这样的。别小看这个思想包袱,大部分,甚至绝大...
FMD开发文集 -- MFC CObject浅析

FMD开发文集 -- MFC CObject浅析

FMD开发文集 -- MFC CObject浅析2010-03-28冯明德CObject是大部分的MFC类的基类 为了完成MFC类的判断、动态生成、序列化等特殊功能,CObject中添加了特定的处理。 为了进一步增强对MFC类对象的理解,在此对CObject源码及相关宏定义进行分析。 (所附代码并非原始代码,为说明问题而作了删减。) 主要介绍了以下几方面内容:1.CObject简要声明2.CRuntimeClass结构3.RUNTIME_CLASS4.DY...
为什么使用C++

为什么使用C++

为什么使用C++2007-10-07 51CTO.com 刘未鹏问题 为什么使用++?在你皱眉准备关掉这个网页之前,试着回答这样一个简单的问题。答案是效率,是吗?每个人都知道答案。但是,我们应该以更专业的角度来讨论一种编程语言或是与之相关的事情。那么,让我再问你一个问题:效率是否是人们选择使用C++的唯一理由,为什么他们不用C呢?C的效率公认比C++高(当然,我知道,现已证明在某种程度上说,C并不比C++高效,但请不要在此挑错,因为即使他们是等效的,问题仍...
Visual C++ MFC简明教程(1)

Visual C++ MFC简明教程(1)

Visual C++ MFC简明教程(1)2010-03-28Marshall Brain第一部分:MFC导论Visual C++ 不仅仅是一个编译器。它是一个全面的应用程序开发环境,使用它你充分利用具有面向对象特性的 C++ 来开发出专业级的 Windows 应用程序。为了能充分利用这些特性,你必须理解 C++ 程序设计语言。掌握了C++,你就必须掌握 Microsoft 基本类库 (MFC) 的层次结构。该层次 结构包容了 Windows API 中的...
用于计算四则混合运算表达式的递归函数第二版

用于计算四则混合运算表达式的递归函数第二版

用于计算四则混合运算表达式的递归函数第二版2007-10-07 ccrun.com billow3用于计算四则混合运算表达式的递归函数第二版更新于2007-08-28 by billow3(QQ:41965573)注:本文在发表时稍作了排版,如果有因排版引起的代码工作不正常请来信告知我们#include <math.h>#pragma warn -8060 // 屏蔽编译时的 Possibly incorrect assignment 警告An...
Visual C++ MFC简明教程(2)

Visual C++ MFC简明教程(2)

Visual C++ MFC简明教程(2)2010-03-28Marshall Brain第二部分:一个简单的MFC程序在本将中,我们将一段一段地来研究上一将中提到的 MFC 应用程序,以便能理解它的结构和概念框架。我们将先介绍 MFC,然后在介绍如何用 MFC 来建立应用程序。MFC简介MFC 是一个很大的、扩展了的 C++ 类层次结构,它能使开发 Windows 应用程序变得更加容易。MFC 是在整个 Windows 家族中都是兼容的,也就是说,无论是...
<< 21 22 23 24 25 26 27 28 29 30 >>