文章 2014-07-29 来自:开发者社区

C++windows内核编程笔记day14 其他线程同步技术

线程同步技术: 原子锁 临界区(段) 互斥 事件 信号量(线程示例时已经使用过) 可等候定时器 使用范围:原子锁<临界区<互斥 效率:    原子锁>临界区(用户态)>互斥(内核态) 一般用临界区。 //等候多个信号 DWORD WaitForMultipleObjects(   DWORD nCount,     &nbs...

文章 2014-02-26 来自:开发者社区

【温故而知新】C和C++5:STL容器技术综述

容器类是可以包含其他对象的类。STL中提供的较为常用的容器类有向量、链表、队列、集合和图等,每一种容器类都是一个模板,可以包含各种类型的对象。这些容器可以分为序列式和关联式两大类。 序列式容器主要有: 1、vector:向量类,可以认为是一种容量可变的数组,可以提供对元素的随机访问,而且可以在序列尾部快速插入和删除数据,并且在需要的时候可以方便地改变容器的大小; 2、list:双向链表类,不支持....

文章 2013-11-21 来自:开发者社区

Windows平台下C++插件系统实现的几个关键技术问题及其解决思路

根据我的实践,在Windows平台下设计并实现一个C++插件系统,需要解决几个关键技术问题。下面我谈谈需要解决的几个关键技术问题以及我想到的简单的解决思路。由于我主要专注于Windows平台C++程序的开发,这里假设以VS为编译环境,MFC界面库来说明。 1. 主程序和插件的关系问题      插件架构一般可以用下面的图来表示:   (注:此图来自...

文章 2013-07-25 来自:开发者社区

基本JNI调用技术(c/c++与java互调)

一.C/C++调用Java 在C/C++中调用Java的方法一般分为五个步骤:初始化虚拟机、获取类、创建类对象、调用方法和退出虚拟机。 1.初始化虚拟机 代码如下:      JNIEnv*env; JavaVM *jvm; JavaVMInitArgs vm_args; JavaVMOptionoptions[3]; intres; //设置参数 opt...

文章 2011-05-24 来自:开发者社区

40、C++ Primer 4th笔记,特殊工具与技术,不可移植特征

1、程序可以从一个机器容易得移植到其他机器,则称此程序是可移植的。C语言是可移植的。 当然,C语言也定义了一些固有的不可移植的特性: 1)算术类型的大小随机器不同而变化。 C++另外两个从C语言继承来的不可移植的特性:位域和volatile限定符(这两个特性使与硬件的直接通信更容易),链接批示(使得可以链接到用其他语言编写的程序)。 2、位域     位域(bit-f...

文章 2011-05-24 来自:开发者社区

39、C++ Primer 4th笔记,特殊工具与技术,联合(union)

1、联合(union)是一种特殊的类。一个union对象可以有多个数据成员,但是任何时刻,只有一个成员可以有值。当将一个值赋给union对象的一个成员的时候,其他所有成员都变为未定义的。每个 union 对象的大小在编译时是固定的:至少与最大数据成员的一样大。 2、union不能作为基类使用,所以成员函数不能为虚函数。union不能具有静态数据成员或引用成员,而且,union不能具有定义了构造.....

文章 2011-05-24 来自:开发者社区

38、C++ Primer 4th笔记,特殊工具与技术,嵌套类

1、在一个类内部再定义另外一个类,这样的类称为嵌套类(nested class),也称为嵌套类型(nested type)。嵌套类最常用于执行类。 嵌套类是独立的类,基本上与它们的外围类不相关,因此,外围类和嵌套类的对象是互相独立的。嵌套类型的对象不具备外围类所定义的成员,同样,外围类的成员也不具备嵌套类所定义的成员。 示例代码 template <class Type> ...

文章 2011-05-23 来自:开发者社区

37、C++ Primer 4th笔记,特殊工具与技术,类成员指针

1、成员指针(pointer to member)包含类的类型以及成员的类型。成员指针只应用于类的非static成员。static类成员不是任何对象的组成部分,所以不需要特殊语法来指向static成员,static成员指针是普通指针。通过指定函数的返回类型,形参表(类型和数目,是否为const)和所属类来定义成员函数的指针。 2、使用类成员的指针     类似于成员访...

文章 2011-05-23 来自:开发者社区

36、C++ Primer 4th笔记,特殊工具与技术,运行时类型识别

1、通过运行时类型识别,程序能够使用基类的指针或引用来检索这些指针或引用所指对象的实际派生类型。 通过以下两种操作符提供RTTI: 1)typeid操作符,返回指针或引用所指对象的实际类型。 2)dynamic_cast操作符,将基类类型的引用或指针安全地转换为派生类型的指针或引用。 这些操作符只为带有一个或多个虚函数的类返回动态类型信息,对于其他类型,返回静态(即编译时)类型的信息。对...

文章 2011-05-22 来自:开发者社区

35、C++ Primer 4th笔记,特殊工具与技术,优化内存分配(2)

9、正如定位new(placement new expression)表达式是使用allocator类的construct成员的低级选择,可以使用析构函数的显式调用作为调用destroy函数的低级选择。 示例代码 for (T *p = first_free; p != elements; /*empty*/) alloc.destroy(--p); //上式表达与下式表达等价 ...

本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。

开发与运维

集结各类场景实战经验,助你开发运维畅行无忧

+关注