Welcome 微信登录

首页 / 软件开发 / C++

C++/CLI中实现singleton模式

C++/CLI中实现singleton模式

C++/CLI中实现singleton模式2007-05-15 博客园 吴尔平 双重检测锁(Double-Checked Locking)实现的Singleton模式在多线程应用中有相当的价值。在ACE的实现中就大量使用ACE_Singleton模板类将普通类转换成具有Singleton行为的类。这种方式很好地消除了一些重复代码臭味,而且,优化后的性能较标准互斥版本提高15倍。最近在用C++/CLI做一些工作,Singleton不可避免地需要用到,于是我又...
MFC教程(1)--MFC概述

MFC教程(1)--MFC概述

MFC教程(1)--MFC概述2010-03-25MFC是一个编程框架MFC (Microsoft Foundation Class Library)中的各种类结合起来构成了一个应用程序框架,它的目的就是让程序员在此基础上来建立Windows下的应用程序,这是一种相对SDK来说更为简单的方法。因为总体上,MFC框架定义了应用程序的轮廓,并提供了用户接口的标准实现方法,程序员所要做的就是通过预定义的接口把具体应用程序特有的东西填入这个轮廓。Microsoft...
C++/CLR泛型与C++模板之间的对比

C++/CLR泛型与C++模板之间的对比

C++/CLR泛型与C++模板之间的对比2007-05-15 天极 陶刚编译Visual Studio 2005把泛型编程的类型参数模型引入了微软.NET框架组件。C++/CLI支持两种类型参数机制--通用语言运行时(CLR)泛型和C++模板。本文将介绍两者之间的一些区别--特别是参数列表和类型约束模型之间的区别。 参数列表又回来了 参数列表与函数的信号(signature)类似:它标明了参数的数量和每个参数的类型,并把给每个参数关联一个唯一的标识符...
C++:最强大的.NET语言之内存与资源

C++:最强大的.NET语言之内存与资源

C++:最强大的.NET语言之内存与资源2007-05-16 天极 谢启东编… 当运行环境中包含垃圾回收机制时,区别开内存管理和资源管理,就非常重要了。典型地来说,垃圾回收器只对包含对象的内存之分配与释放感兴趣,它可不关心你的对象是否拥有其他的资源,如数据库连接或核心对象的句柄。 内存管理 本地C++为程序员提供了超越内存管理的直接控制能力,在堆栈上分配一个对象,意味着只有在进入特定函数时,才会为对象分配内存,而当函数返回或堆栈展开时,内存被释放。可...
MFC教程(3)-- CObject类

MFC教程(3)-- CObject类

MFC教程(3)-- CObject类2010-03-25CObject是大多数MFC类的根类或基类。CObject类有很多有用的特性:对运行时类信息的支持,对动态创建的支持,对串行化的支持,对象诊断输出,等等。MFC从CObject派生出许多类,具备其中的一个或者多个特性。程序员也可以从CObject类派生出自己的类,利用CObject类的这些特性。本章将讨论MFC如何设计CObject类的这些特性。首先,考察CObject类的定义,分析其结构和方法(成...
C++:最强大的.NET语言之装箱

C++:最强大的.NET语言之装箱

C++:最强大的.NET语言之装箱2007-05-16 天极 谢启东编…再论类型 在讨论装箱(boxing)之前,有必要弄清楚为什么值类型与引用类型之间会有所区别。 一个含有数值的值类型的实例,和一个指向对象的引用类型的实例,它们有什么区别呢?除了存储对象所需的内存之外,每一个对象都会有一个对象头,目的是为面向对象的编程提供基本的服务,如存在虚方法的类,嵌入其中的元数据等等。由虚方法和接口间接结合的对象头,其内存开销通常会很大,哪怕你所需要的只是一个静...
MFC教程(4)-- 消息映射的实现(1)

MFC教程(4)-- 消息映射的实现(1)

MFC教程(4)-- 消息映射的实现(1)2010-03-25消息映射的实现Windows消息概述Windows应用程序的输入由Windows系统以消息的形式发送给应用程序的窗口。这些窗口通过窗口过程来接收和处理消息,然后把控制返还给Windows。消息的分类队列消息和非队列消息从消息的发送途径上看,消息分两种:队列消息和非队列消息。队列消息送到系统消息队列,然后到线程消息队列;非队列消息直接送给目的窗口过程。这里,对消息队列阐述如下:Windows维护一...
MFC教程(5)-- MFC对象的创建(1)

MFC教程(5)-- MFC对象的创建(1)

MFC教程(5)-- MFC对象的创建(1)2010-03-25MFC对象的创建前面几章介绍了MFC的核心概念和思想,即介绍了MFC对Windows对象的封装方法和特点;MFC对象的动态创建、序列化;MFC消息映射机制。现在,考查MFC的应用程序结构体系,即以文档-视为核心的编程模式。学习本章,应该弄清楚以下问题:MFC中诸多MFC对象的关系:应用程序对象,文档对象,边框窗口对象,文档边框窗口对象,视对象,文档模板对象等。MFC对象的创建和销毁:由什么对象...
C++:最强大的.NET语言之可访问性

C++:最强大的.NET语言之可访问性

C++:最强大的.NET语言之可访问性2007-05-16 天极 谢启东编… CLR定义了一些用于访问存取的修饰成分,其作用超越了本地C++中类成员函数与变量的对等物(如:public、private、protected),不仅如此,甚至还能定义命名空间或嵌套类型的可访问性。为了让C++/CLI达到作为低级语言的目标,除访问性之外,它还提供了比其他CLR平台高级语言更多的控制。 本地C++可访问性与CLR中定义的可访问性相比,其最大不同之处在于:本地C...
MFC教程(5)-- MFC对象的创建(2)

MFC教程(5)-- MFC对象的创建(2)

MFC教程(5)-- MFC对象的创建(2)2010-03-25从这些图中可以看到何时、何处调用了什么消息处理函数和虚拟函数,这些函数用来作了什么事情。必要的话,程序员可以在派生类覆盖它们。在创建工作完成之后,进行初始化,使用文档对象的数据来更新视和显示窗口。至此,本节描述了MFC的SDI程序从分析命令行到创建或打开文件的处理过程,文档对象已经动态创建。总结如下:命令行分析→应用程序的FileNew→文档模板的OpenDocumentF...
MFC教程(6)-- 应用程序的退出

MFC教程(6)-- 应用程序的退出

MFC教程(6)-- 应用程序的退出2010-03-25一个Windows应用程序启动之后,一般是进入消息循环,等待或者处理用户的输入,直到用户关闭应用程序窗口,退出应用程序为止。例如,用户按主窗口的关闭按钮,或者选择执行系统菜单“关闭”,或者从“文件”菜单选择执行“退出”,都会导致主窗口被关闭。当用户从“文件”菜单选择执行“退出”时,将...
C++:最强大的.NET语言之对象构造

C++:最强大的.NET语言之对象构造

C++:最强大的.NET语言之对象构造2007-05-16 天极 谢启东编…简介 Visual C++开发小组花了大量的时间用于听取用户的意见,在对 .NET和C++经过仔细考量之后,决定在Visual C++ 2005中重新设计对通用语言运行时库(CLR)的支持,此项重新的设计被称为"C++/CLI",它将为使用及编写CLR类型提供更自然的语法。在本文中,主要探讨了新的语法,并将之与C#和托管C++这两个CLR平台上极其相近的语言进...
MFC教程(7)-- MFC的DLL

MFC教程(7)-- MFC的DLL

MFC教程(7)-- MFC的DLL2010-03-26一般的,在介绍Windows编程的书中讲述DLL的有关知识较多,而介绍MFC的书则比较少地提到。即使使用MFC来编写动态链接库,对于初步接触DLL的程序员来说,了解DLL的背景知识是必要的。另外,MFC提供了新的手段来帮助编写DLL程序。所以,本节先简洁的介绍有关概念。DLL的背景知识静态链接和动态链接当前链接的目标代码(.obj)如果引用了一个函数却没有定义它,链接程序可能通过两种途径来解决这种从外...
Visual Studio 2005中C++的变化

Visual Studio 2005中C++的变化

Visual Studio 2005中C++的变化2007-05-16 天极 wxfnj编…下一代visual studio版本(以前whidbey,现在是visual studio 2005)提供更加丰富的改进的库文件和没有很多幕后精简和加速的压力,它的大量配合的工具和新的功能将使开发者的开发过程变得简单有趣,对我而言,这些与visual studio 2005对C++的处理相比就显得有些苍白,这里我主要谈谈在下一代visual studio中C++的变...
MFC教程(8)-- MFC的进程和线程

MFC教程(8)-- MFC的进程和线程

MFC教程(8)-- MFC的进程和线程2010-03-26Win32的进程和线程概念进程是一个可执行的程序,由私有虚拟地址空间、代码、数据和其他操作系统资源(如进程创建的文件、管道、同步对象等)组成。一个应用程序可以有一个或多个进程,一个进程可以有一个或多个线程,其中一个是主线程。线程是操作系统分时调度分配CPU时间的基本实体。一个线程可以执行程序的任意部分的代码,即使这部分代码被另一个线程并发地执行;一个进程的所有线程共享它的虚拟地址空间、全局变量和操...
下一代C++:C++/CLI语言的属性探索

下一代C++:C++/CLI语言的属性探索

下一代C++:C++/CLI语言的属性探索2007-05-16 天极 刘涛前言: 本文展示了欧洲计算机开发商协会正在发展的C++/CLI(一种不同的C++语言,它方便开发人员在微软的.NET框架下更容易地开发程序)语言在C++语言上的扩展。写这篇文章的目的并不是要建议标准C++包括这部分扩展,也不是对C++/CLI的认可,而只是在探讨C++/CLI语言在这一领域的发展方向。 一、基础知识 C++/CLI中的属性是类似与各种数据成员(有各种操作限制)...
MFC教程(9)-- MFC的进程和线程(1)

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

MFC教程(9)-- MFC的进程和线程(1)2010-03-26MFC定义了多种状态信息,这里要介绍的是模块状态、进程状态、线程状态。这些状态可以组合在一起,例如MFC句柄映射就是模块和线程局部有效的,属于模块-线程状态的一部分。模块状态这里模块的含义是:一个可执行的程序或者一个使用MFC DLL的DLL,比如一个OLE控件就是一个模块。一个应用程序的每一个模块都有一个状态,模块状态包括这样一些信息:用来加载资源的 Windows实例句柄、指向当前CWi...
在managed C++应用中使用ADO.NET

在managed C++应用中使用ADO.NET

在managed C++应用中使用ADO.NET2007-05-16 51dotnet Tacone译摘要: 文中就用ADO.NET数据对象访问数据库及从数据库回取数据的基本原理作出示例说明。 正文: 本文提供了一个由应用向导生成的基于标准Managed C++应用的实例,它用.NET的ADODataReader类从数据库中取回一个只读(read-only)、只前移(forward-only)的数据流。就是因为在内存中一次仅一行,可用数据读取器...
<< 21 22 23 24 25 26 27 28 29 30 >>