摘要:
64位Wnidows 里面有个叫Wow64的模拟器技术,可以使32位的程序在64位Windows 上运行。 当你想在程序里面针对32b位/ 64位系统执行不同代码的时候, 需要判断操作系统是32位还是64位。 使用 Windows API函数GetNativeSystemInfo可以获得这个信息。代码示例:SYSTEM_INFO si;GetNativeSystemInfo(&si);if (si.wProcessorArchitecture == PROCESSOR_ARCHITECTURE_AMD64 || si.wProcessorArchitecture != PROCESSO 阅读全文
摘要:
delphi语言在传统的Records类型的基础上增加了许多像类一样的高级功能,如:Records可以有属性和方法(包括构造constructors),类属性,类方法,类静态字段和内嵌类型。下面这个示例演示定义一个功能像类一样的Records:typeTMyRecord = recordtypeTInnerColorType = Integer;varRed: Integer;class varBlue: Integer;procedure printRed();constructor Create(val: Integer);property RedProperty: TInnerColor 阅读全文
摘要:
本文转自http://hi.baidu.com/homejun/blog/item/3cd2cd1b6c60f4faaf5133d0.htmldelphi2006语言新特性——类静态字段、类属性类静态字段 Class Fields(直译应为类字段,为避免混淆,本文统称类静态字段)类静态字段是类的一种特殊字段,它可以在类没有实例化时访问(普通的实例字段必须在类实例化后才能访问)。类静态字段储存的值可以被所有实例共享。(很有意思,赋一下值,所有类,实例都会改变,感觉很有用)你可以用关键字class var在类的声明部分定义一个类静态字段块,所有在class var 以后定义的字段都是静态存储的。当 阅读全文
摘要:
设计一个PC游戏,键盘鼠标的输入是绝不能少。Windows也提供了诸如WM_LBUTTONDOWN、WM_RBUTTONUP等鼠标消息以及WM_KEYDOWN、WM_KEYUP等键盘输入消息。但是DirectInput中仍然提供了对鼠标键盘的支持,其原因就是DirectInput提供一个更直接更快捷的对输入设备的访问方法。就象我们在DOS下直接接管键盘中断,而不是去用什么讨厌的INT16来处理键盘输入一样(用INT16来处理键盘输入其弊端在《金庸群侠传》中显得尤为明显,人物在走路之前总要顿那么一下,就是这一下让我觉得非常之不爽!其原因我想我也不用罗嗦了)。 当然Windows的键盘消息比之I. 阅读全文
摘要:
键盘是我们使用计算机的一个很重要的输入设备了,即使在鼠标大行其道的今天,很多程序依然离不开键盘来操作。但是有时候,一些重复性的,很繁琐的键盘操作总会让人疲惫,于是就有了用程序来代替人们按键的方法,这样可以把很多重复性的键盘操作交给程序来模拟,省了很多精力,按键精灵就是这样的一个软件。那么我们怎样才能用VB来写一个程序,达到与按键精灵类似的功能呢?那就让我们来先了解一下windows中响应键盘事件的机制。当用户按下键盘上的一个键时,键盘内的芯片会检测到这个动作,并把这个信号传送到计算机。如何区别是哪一个键被按下了呢?键盘上的所有按键都有一个编码,称作键盘扫描码。当你按下一个键时,这个键的扫描码就 阅读全文
摘要:
1 // DInputKeyboard.h: interface for the CDInputKeyboard class. 2 // 3 ////////////////////////////////////////////////////////////////////// 4 5 #pragma once 6 7 #define DIRECTINPUT_VERSION 0x800 8 #include <afxtempl.h> 9 #include <dinput.h> 10 #pragma comment(lib, "dinput8.lib&quo 阅读全文
摘要:
1 #include <winnls.h> 2 #include <malloc.h> 3 LPCSTR AnsiToUtf8(LPCSTR Ansi) 4 { 5 int WLength = MultiByteToWideChar(CP_ACP, 0, Ansi, -1, NULL, 0); 6 LPWSTR pszW = (LPWSTR) _alloca((WLength+1) * sizeof(WCHAR)); 7 MultiByteToWideChar(CP_ACP, 0, Ansi, -1, pszW, WLength); 8 9 int ALength = 阅读全文