随笔- 48
文章- 351
评论- 16
阅读-
25万
文章分类 - win32
关于DLL
摘要:1. 所有dll函数均以c方式创建(必须以extern "C"创建并调用,不论实现是.C 还是 .CPP) 2. 函数声明必须指定__decl(dllexport)关键字, 否则必须写.def文件才能生成正确的DLL及其引入库(后者在静态调用dll为必需品), 在调用函数时则无须该关键字。(因此往往以#ifdef CreateDLL __decl() #else CreateDLL 的方式来声...
阅读全文
用 QueryPerformanceFrequency 和 QueryPerformanceCounter 进行高精度计时
摘要:void main() { LARGE_INTEGER lv; // 获取每秒多少CPU Performance Tick QueryPerformanceFrequency( &lv ); // 转换为每个Tick多少秒 double secondsPerTick = 1.0 / lv.QuadPart; for ( size...
阅读全文
关于Win32下创建线程的总结
摘要:关于创建线程的总结: 众所周知,在使用Win32 API中的CreateThread函数创建新线程的时候,需要提供一个线程函数入口, 而且线程函数必须是全局函数,而不能是普通的类成员函数,因为VC会告诉你线程函数的类型不匹配! 今天在调试谢MM那块的语音模块时,我们需要创建一个新的线程来执行AudioChat对象的Connect方法。问题就来了,线程函数不允许是类的成...
阅读全文
Windows SDK笔记(三):定制控件消息处理函数
摘要:一、概述 控件的消息处理函数是由系统定义好了的,通常情况下,不需要自己提供。 但当需要对控件进行特殊控制时,可以提供一个消息处理函数,替换原来的消息处理函数。 自己的处理完成后,再调用控件的缺省消息处理。 二、相关函数 1.窗口类的属性可以通过GetWindowLong和SetWindowLong进行读取和设置 LONG GetWindowLong( HWND hWnd, // hand...
阅读全文
Windows SDK笔记(二):在窗口上建立控件
摘要:一、概述 控件是子窗口,它们是系统已经定义好的窗口类,因此不需要注册、 也不需要写消息处理函数。 在主窗口得到WM_CREATE消息时,建立子窗口即可。 二、实例 //参数:窗口句柄,消息,消息参数,消息参数 LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) { //处理感兴趣的消...
阅读全文
Windows SDK笔记(-):Windows程序基本结构
摘要:一、概述 Windows程序具有相对固定的结构,对编写者而言,不需要书写整个过程,大部分过程由系统完成。 程序中只要按一定的格式填写系统留给客户的那一小部分。 所需要完成的有: 窗口类的定义、窗口的建立、消息函数的书写、消息循环。 二、消息处理函数 Windows程序是事件驱动的,对于一个窗口,它的大部分例行维护是由系统维护的。没个窗口都有一个消息处理函数。 在消息处理函数中,对传入的消...
阅读全文
VC中的一些常用方法(20条)
摘要:一、打开CD-ROM mciSendString("Set cdAudio door open wait",NULL,0,NULL); 二、关闭CD_ROM mciSendString("Set cdAudio door closed wait",NULL,0,NULL); 三、关闭计算机 OSVERSIONINFO OsVersionInfo; //包含操作系统版本信息的数据结构 O...
阅读全文
对CreateCompatibleDC的粗浅认识
摘要:gdi在sdk应该是很重要的东西,不过嘛自己的水平实在是不怎么够品。长久以来一直都没有认识到 CreateCompatibleDC 的用途到底在这里,不过还好从知道这个东西数起的200天内,我终于还是晓得一些关于这个函数或者说内存dc存在的意义了。 在这种情况下,假如你要对屏幕进行比较多的gdi函数操作,如果每一步操作都直接对屏幕dc进行操作,那出现的大多数可能性都是屏幕的闪烁。一个...
阅读全文
设备场景函数——72个
摘要:说明:本类 API 函数,内容均摘自网络,版权归实际作者所有。 CombineRgn 将两个区域组合为一个新区域 CombineTransform 驱动世界转换。它相当于依顺序进行两次转换 ...
阅读全文
API函数—设备场景函数(一)
摘要:本页包括下列五个函数 CombineRgn CombineTransform CreateCompatibleDC CreateDC,CreateDCBynum CreateEllipticRgn CombineRgn 声明 ...
阅读全文
win32常用重要关键函数
摘要:The following functions are used with window procedures. CallWindowProc DefWindowProc WindowProc The following functions are used with MDI. CreateMDIWindow DefFrameProc DefMDIChildPr...
阅读全文
在程式中对键盘、鼠标、显示器、桌面 操作小结
摘要:一 键盘 1.1 Disabling Low-level Keys #define _WIN32_WINNT 0x0400 #include LRESULT CALLBACK LowLevelKeyboardProc(int nCode, WPARAM wParam, LPARAM lParam) { BOOL fEatKeystroke = FALSE; ...
阅读全文
win32编程详解
摘要:表4-1 应用程序的进入点 应用程序类型 进入点 嵌入可执行文件的启动函数 需要ANSI字符和字符串的GUI应用程序 WinMain WinMainCRTStartup ...
阅读全文
extern用法详解
摘要:1 基本解释 extern可以置于变量或者函数前,以标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。 另外,extern也可用来进行链接指定。 2 问题:extern 变量 在一个源文件里定义了一个数组:char a[6]; 在另外一个文件里用下列语句进行了声明:extern char *a; 请问,这样可以吗? 答案...
阅读全文
__cdecl __fastcall与 __stdcall约定
摘要:调用约定: __cdecl __fastcall与 __stdcall,三者都是调用约定(Calling convention),它决定以下内容: 1)函数参数的压栈顺序, 2)由调用者还是被调用者把参数弹出栈, 3)以及产生函数修饰名的方法。 1、__stdcall调用约定:函数的参数自右向左通过栈传递,被调用的函数在返回前清理传送参数的内存栈, 2、_cdecl是C和C++程序的缺省调用...
阅读全文
win32中安全子类化
摘要:摘要 本文描述了Win32环境下的子类化,描述了它是如何工作的以及实现安全的子类化必须要遵循的规则。本文涵盖了实例子类化和全局子类化。而超类化则作为一个全局子类化的可选替代方案被介绍。 从Win16到Win32,子类化并没有发生特别显著的变化,但是,在Win32中,一个应用程序还是要遵守几个新的子类化规则。其中最重要(也是最明显的)就是一个应用程序不能子类化属于另一个进程的窗口或者类,除非有工...
阅读全文