随笔分类 - windows编程
windowsAPI编程
摘要:GC的前世与今生虽然本文是以.net作为目标来讲述GC,但是GC的概念并非才诞生不久。早在1958年,由鼎鼎大名的图林奖得主John McCarthy所实现的Lisp语言就已经提供了GC的功能,这是GC的第一次出现。Lisp的程序员认为内存管理太重要了,所以不能由程序员自己来管理。但后来的日子里Li...
阅读全文
摘要:1、Windows消息传输对象 当开发界面程序时,特别是windows界面编程,消息尤为重要;相信开发过windows界面程序的人们,对PostMessage(),SendMessage(),PostThreadMessage()不是很陌生,各个窗口基本上都可以通过这三个函数实现各种消息的传递,从面达到各个窗口之间的通信;窗口可以通过这三个函数向别的窗口发送消息,也可以接收消息,当然消息里就承载了进程间通信的各种信息(如要协同做些什么,完成什么功能等)。2、文件共享和内存共享 文件共享,简言之就是文件映射到内存,达到共享,从而实现通信3、系统剪贴板通信 其实这也是一种通过共享而实现通信的方式,
阅读全文
摘要:转自http://www.cnblogs.com/hyddd/archive/2009/03/31/1426026.html浅谈HTTP中Get与Post的区别 Http定义了与服务器交互的不同方法,最基本的方法有4种,分别是GET,POST,PUT,DELETE。URL全称是资源描述符,我们可以这样认为:一个URL地址,它用于描述一个网络上的资源,而HTTP中的GET,POST,PUT,DELETE就对应着对这个资源的查,改,增,删4个操作。到这里,大家应该有个大概的了解了,GET一般用于获取/查询资源信息,而POST一般用于更新资源信息。 1.根据HTTP规范,GET用于信息获取,而且..
阅读全文
摘要:在Win32平台上进行多线程编程,常会用到锁。下边用C++实现了互斥对象(Mutex)锁和临界区(CRITICAL_SECTION)锁,以加深理解和今后方便使用。代码已在VS2005环境下编译测试通过。Lock.h[cpp] view plaincopyprint?#ifndef_Lock_H #define_Lock_H #include<windows.h> //锁接口类 classILock{public:virtual~ILock(){}virtualvoidLock()const=0;virtualvoidUnlock()const=0;};//互斥对象锁类 classM
阅读全文
摘要:线程,有时被称为轻量级进程,是程序执行流的最小单元。一个标准的线程由线程ID,当前指令指针,寄存器集合和堆栈组成。另外,线程是进程中的一个实体,是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,只拥有一点在运行中必不可少的资源,但它可与同属一个进程的其它线程共享进程所拥有的全部资源。既然线程作为程序执行流的最小单元,那么在Windows中,是怎样管理和调度线程的呢?在Windows NT以后,Windows实现了一个基于优先级的抢先式多处理器调度系统。调度系统总是运行优先级最高的就绪线程。通常线程可在任何可用处理器上运行,但也可限制某线程只能在某处理器上运行。先看一下优先级是怎么划分的
阅读全文
摘要:Windows是一款微内核、抢占式多任务、软实时的操作系统。Windows的任务调度主要以线程为单位进行,线程拥有33个优先级,数值为0~32,其中0为最低优先级,32为最高优先级,最高和最低优先级均保留给系统使用。用户可以使用的优先级为1~31。Windows按照优先级高低顺序来进行任务的调度,当调度发生时,内核首先检查高优先级的线程是否 就绪,如果有发现有高优先级的线程就绪则立刻将高优先级的线程发往CPU执行。如果有高优先级的线程就绪,就不会执行低优先级的任务。不 过,windows使用成为“饥渴”的时间片分配策略,如果有线程一直渴望得到时间片但是很长时间都没有获得时间片,windows就
阅读全文
摘要:一、动态链接库的概念 动态链接库(Dynamic Link Library,缩写为DLL)是一个可以被其它应用程序共享的程序模块,其中封装了一些可以被共享的例程和资源。动态链接库文件的扩展名一般是dll,也有可能是drv、sys和fon,它和可执行文件(exe)非常类似,区别在于DLL中虽然包含了可执行代码却不能单独执行,而应由Windows应用程序直接或间接调用。 动态链接是相对于静态链接而言的。所谓静态链接是指把要调用的函数或者过程链接到可执行文件中,成为可执行文件的一部分。换句话说,函数和过程的代码就在程序的exe文件中,该文件包含了运行时所需的全部代码。当多个程序都调用相同函数时...
阅读全文
摘要:在本章中,我将介绍窗口过程和基本的正文输出,并对一些较高级的题材,如键盘和鼠标,作一个简洁的介绍。消息系统完美的风格使得你可以相对完全地、及时地对这两个硬件设备进行控制。 现在,你可以开始输入并运行程序清单 5.1 上的程序。程序清单 5.1 KeyMouse 程序,用于追踪键盘和鼠标的输入///////////////////////////////////////// Program Name:KeyMouse.cpp// Programer: skyline// Description: Show how to trap keyboard and mouse input////////.
阅读全文
摘要:STDMETHOD_是一个宏,用于定义指定返回类型的接口方法,包含virtual关键字。可用于定义方法声明。 #define STDMETHOD_(type,menthod) virtual type STDMETHODCALLTYPE menthod 例如: STDMETHOD_ (ULONG, release)()展开后就是 virtual ULONG STDMETHODCALLTYPE release() STDMETHODCALLTYPE 宏展开是 __stdcall。#define STDMETHOD(method) virtual HRESULT STDMETHODCALLTYPE
阅读全文
摘要:#include "resource.h"LRESULT CALLBACK About(HWND, UINT, WPARAM, LPARAM);int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow){ MSG msg; // 创建主对话框,用CreateDialog创建的是...
阅读全文