- 博客(16)
- 资源 (51)
- 收藏
- 关注
原创 DLL 几种类型
1、Non-MFCDLL(非MFC动态库) 这种动态链接库指的是不用MFC的类库结构,直接用C语言写的DLL,其导出的函数是标准的C接口,能被非MFC或MFC编写的应用程序所调用。如果建立的DLL不需要使用MFC,那么应该建立Non-MFCDLL,因为使用MFC会增大用户库的大小,从而浪费用户的磁盘和内存空间。 2. MFC
2017-08-10 15:32:31 2270
原创 COM浅析
COM是Component object model的缩写。中文名为组件对象模型。 传统的软件由单个的二进制文件组成。组件将单个二进制文件分割为多个独立的部分,每个部分都被称为一个组件。采用组件技术后,在需要对程序进行修改和改进时,只需替换某个组件模块即可。 组件化程序设计思想是将复杂的应用程序被设计成小的、功能单一的组件模块。为了实现这样的软件,模块与模块之间
2017-08-09 18:18:21 2238
原创 虚函数表详解
1. 指针长度(1) 32位操作系统 指针长度为4字节, 64位操作系统指针长度为8字节 (2) new一个对象时, 只为类中成员变量分配空间, 对象之间共享成员函数 2. _vptr 虚表指针 对于有virtual的类,编译器在类中自动添加了一个4字节的成员变量, 这个变量就是_vptr, 指向虚函数表的指针。 VC将_vptr指针值放在对象内存的开始 。3. 虚函数表 包...
2017-08-09 15:22:45 682
原创 dll 详解与调用
DLL(Dynamic Link Library)的概念,你可以简单的把DLL看成一种仓库,它提供给你一些可以直接拿来用的变量、函数或类。 静态链接库(lib) 无论你愿不愿意,lib中的指令都被直接包含在最终生成的EXE文件中了,导致应用程序比较大.失去了动态库的灵活性,在版本升级时,同时要发布新的应用程序才行。 而且静态链接库中不能再包含其他的动态链接库或者静态库
2017-08-04 11:12:03 831
原创 Git常用命令
我每天使用 Git ,但是很多命令记不住。一般来说,日常使用只要记住下图6个命令,就可以了。但是熟练使用,恐怕要记住60~100个命令。下面是我整理的常用 Git 命令清单。几个专用名词的译名如下。Workspace:工作区Index / Stage:暂存区Repository:仓库区(或本地仓库)Remote:远程仓库一、新建代码库
2017-08-03 16:28:25 249
原创 __declspec(dllexport) 与 __declspec(dllimport)
__declspec(dllexport):导出符号,也就是定义需要导出函数的dll中给导出函数的函数声明前面加上导出符号,表示该方法可以导出给其他DLL或者exe使用;__declspec(dllimport)导入符号,也就是在使用该函数的DLL或者exe中需要在该函数的函数声明前面加上该符号,表示该函数方法是从其他库导入的。 我们编写一个DLL库一般都是用来
2017-08-03 11:13:30 593
原创 大端Big-Endian 、小端Little-Endian
Big-Endian和Little-Endian的定义如下: 举一个例子,比如数字0x12 34 56 78在内存中的表示形式为:1)大端模式: 高位字节排放在内存的低地址端,低位字节排放在内存的高地址端。低地址 -----------------> 高地址0x12 | 0x34 | 0x56 | 0x782)小端模式:高位字节排放在
2017-08-03 10:58:06 532
原创 windows下进程通讯
1 进程与进程通信 进程是装入内存并准备执行的程序,每个进程都有私有的虚拟地址空间,由代码、数据以及它可利用的系统资源(如文件、管道等)组成。多进程/多线程是Windows操作系统的一个基本特征。Microsoft Win32应用编程接口(Application Programming Interface, API)提供了大量支持应用程序间数据共享和交换的机制,这些机制行使的活动称为
2017-08-01 11:37:00 208
转载 windows线程同步总结
一 线程1)如果你正在编写C/C++代码,决不应该调用CreateThread。相反,应该使用VisualC++运行期库函数_beginthreadex,退出也应该使用_endthreadex。如果不使用Microsoft的VisualC++编译器,你的编译器供应商有它自己的CreateThred替代函数。不管这个替代函数是什么,你都必须使用。2)因为_beginthreadex和
2017-08-01 11:34:10 351
原创 windows下线程同步
#include "stdafx.h"#include "iostream"#include "list"#include "windows.h"#include "process.h"using namespace std;/*线程同步1.临界区2.信号量3.事件对象4.互斥量*//***********************
2017-08-01 11:30:23 326
原创 Linux系统中的进程、线程间通信
Linux系统中的进程间通信方式主要以下几种:同一主机上的进程通信方式 * UNIX进程间通信方式: 包括管道(PIPE), 有名管道(FIFO), 和信号(Signal) * System V进程通信方式:包括信号量(Semaphore), 消息队列(Message Queue), 和共享内存(Shared Memory)网络主机间的进程通信方式
2017-08-01 11:25:34 369
转载 Linux下多进程详解
进程的经典定义是一个执行中程序的实例。系统中的每个程序都是运行在某个进程上下文中。进程上下文是有程序正确运行所需的状态组成的,这个状态包括存放存储器中的程序代码和数据、栈、通用寄存器内容、程序计数器、环境变量以及打开文件描述符的集合。一,Linux 进程地址空间进程为每个程序提供它自己的私有地址空间,通常与这个地址空间关联的存储器字节是不能被其他进程读或者写的,linux进程的地址
2017-08-01 11:23:51 420
原创 Linux下线程同步
Linux下提供了多种方式来处理线程同步,最常用的是互斥锁、条件变量和信号量。一、互斥锁(mutex) 锁机制是同一时刻只允许一个线程执行一个关键部分的代码。 1. 初始化锁 int pthread_mutex_init(pthread_mutex_t *mutex,const pthread_mutex_attr_t *mutexattr); 其中参数 mut
2017-08-01 11:19:58 348
转载 Linux下线程详解
线程与进程 使用多线程的理由之一是和进程相比,它是一种非常"节俭"的多任务操作方式。我们知道,在Linux系统下,启动一个新的进程必须分配给它独立的地址空间,建立众多的数据表来维护它的代码段、堆栈段和数据段,这是一种"昂贵"的多任务工作方式。而运行于一个进程中的多个线程,它们彼此之间使用相同的地址空间,共享大部分数据,启动一个线程所花费的空间远远小于启动一个进程所花费的空间,而且,线程间
2017-08-01 11:12:29 357
转载 windows 下 IOCP(I/O Completion Port,I/O完成端口)
IOCP(I/O Completion Port,I/O完成端口)是性能最好的一种I/O模型。它是应用程序使用线程池处理异步I/O请求的一种机制。在处理多个并发的异步I/O请求时,以往的模型都是在接收请求是创建一个线程来应答请求。这样就有很多的线程并行地运行在系统中。而这些线程都是可运行的,Windows内核花费大量的时间在进行线程的上下文切换,并没有多少时间花在线程运行上。再加上创建新线程的开销
2017-08-01 10:50:31 1070
转载 windows 下 IOCP模型(完成端口)
IOCP(I/O Completion Port,I/O完成端口)是性能最好的一种I/O模型。它是应用程序使用线程池处理异步I/O请求的一种机制。在处理多个并发的异步I/O请求时,以往的模型都是在接收请求是创建一个线程来应答请求,这样就有很多的线程并行地运行在系统中 ,Windows内核花费大量的时间在进行线程的上下文切换,并没有多少时间花在线程运行上。再加上创建新线程的开销比较大,所以造成了效率
2017-08-01 10:44:22 2281 6
UGUI Super ScrollView 最新版2.3.2
2019-02-23
openGL的实用工具包 GLUT库
2011-10-23
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人