这代码看着都头大.C++的东西除了版主贴出来的那几页,其它的还真没看过.
程序代码:
MyConsole::KeyCode MyConsole::ReadKeypress(void)//两个MyConsole什么关系? ::什么作用?
{
wint_t key = _getwch(); //win_t是什么数据类型?
if (key == 0x00E0)
{
key = (key << 2) + _getwch();
}
return (static_cast<KeyCode>(key));
}
键盘的扫描码是自定义的还是MS系统下MS定义的?
程序代码:
MyConsole::KeyCode MyConsole::ReadKeypress(void)//两个MyConsole什么关系? ::什么作用?
{
wint_t key = _getwch(); //win_t是什么数据类型?
if (key == 0x00E0)
{
key = (key << 2) + _getwch();
}
return (static_cast<KeyCode>(key));
}
键盘的扫描码是自定义的还是MS系统下MS定义的?
1.MyConsole是我自定义的类(见那头文件)名称,由于类中定义的枚举、方法等均为静态,故用::指定属于该类。MyConsole::KeyCode表明KeyCode这个数据类型是MyConsole类中的,同理,ReadKeypress()函数也是MyConsole类中的。这段是该头文件的具体实现代码。平时我们看到的.h文件内容,只是定义和声明,但看不到实现代码,光有.h是没用的。
2.wint_t实际上就是unsigned short类型,即无符号16位整数,专用于表示双字节宽字符,比如中文。注意:C/C++标准中的int类型,其具体长度是根据机器和平台变化而变化的,不定长,但wint_t基本上是固定长的(在标准中它是介于char和int之间的宽度,对32位系统来说,就是16位)。
3.键盘扫描码是操作系统定的,不同的系统有不同的编码和译码体系,没有标准。我给出的头文件的价值,在于给你们提供了DOS/Windows下的键盘码表。价值在数据,不在代码。
[ 本帖最后由 TonyDeng 于 2014-8-1 03:24 编辑 ]
授人以渔,不授人以鱼。