手机站
网通分站
电信主站
密 码:
用户名:
当前位置 : 主页>网站运营>建站经验>列表

Wine 用户指南(四)

来源:互联网 作者:west263.com 时间:2008-04-16
西部数码-全国虚拟主机10强!40余项虚拟主机管理功能,全国领先!双线多线虚拟主机南北访问畅通无阻!免费赠送企业邮局,.CN域名,自助建站480元起,免费试用7天,满意再付款! P4主机租用799元/月.月付免压金!


icmp
给 wsock32 的 ICMP 例程。如同 wsock32,保留为 builtin。

mpr
由于 thunking 要点,他的 native 版本可能不工作。保留为 builtin。

lzexpand, lz32
Lempel-Ziv 压缩。 Wine 的 builtin 版本应当工作的很好。

winaspi, wnaspi32
高级 SCSI 外设接口。他的 native 版本可能不工作。保留为 builtin。

crtdll
C 运行时库。他的 native 版本很容易的比 Wine 的版本工作的好。

winspool.drv
打印机缓冲池。您好象没有那么走运使用他的 native 版本。

ddraw
DirectDraw/Direct3D(直接绘制/直接三维)。因为 Wine 没有实现 DirectX HAL,现在他的 native 版本不能工作。

dinput
DirectInput(直接输入)。他的 native 版本是否工作是两可的。

dsound
DirectSound(直接声音)。可能运行他的 native 版本,但不要依仗他。

dplay/dplayx
DirectPlay(直接播放)。他的 native 版本应该工作的很好,假如是完全的话。

mmsystem, winmm
多媒体系统。他的 native 版本好象不能工作。保留为 builtin。

msacm, msacm32
音频压缩管理器。假如您把 msacm.drv 配置为相同的,他的 builtin 版本工作的很好。

msvideo, msvfw32
Windows 视频。 能够安全的(和推荐)尝试 native 版本。

mcicda.drv
CD 音频 MCI 驱动程式。

mciseq.drv
MIDI Sequencer MCI 驱动程式(.MID 回放)。

mciwave.drv
Wave 音频 MCI 驱动程式(.WAV 回放)。

mciavi.drv
AVI MCI 驱动程式(.AVI 视频回放)。最好使用 native 版本。

mcianim.drv
Animation MCI 驱动程式。

msacm.drv
音频压缩管理器。配置为和 msacm32 相同。

midimap.drv
MIDI Mapper。

wprocs
这是 Wine 用于 thunking 目的的一个伪装 DLL。他的 native 版本不存在。


4.7. 键盘
编写:Ove K鍁en <ovek@winehq.com>
(提取自 wine/documentation/keyboard)

现在 Wine 需要知道您的键盘布局(layout)。这个需要来自一些应用程式的需求,他们需要获得正确的键盘扫描码,原因是他们直接读取这些扫描码,而不是接受从 X 服务器返回的字符。这意味着 Wine 现在需要有一个从 X 键到这些程式所需要的扫描码的映射。

在启动的时候,Wine 尝试着识别活跃的 X 布局,方法是查看他是否匹配任何定义的表。假如是,任何的事情都正常。假如不是,您需要定义他。

要想定义他,打开文档 windows/x11drv/keyboard.c 并查看现存的表。复制他做为一个备份,特别是在您不是使用 CVS 的时候。

您实际上需要做的是找出每个键需要生成的那个扫描码。在 main_key_scan 表中查看,他看起来如下:

static const int main_key_scan[MAIN_LEN] =
{
/* 这是我的 (102-键) 键盘布局,假如不匹配您的键盘是很遗憾的 */
0x29,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,
0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,
0x1E,0x1F,0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x2B,
0x2C,0x2D,0x2E,0x2F,0x30,0x31,0x32,0x33,0x34,0x35,
0x56
/* 第 102 个键(实际上在 l-shift 的右边) */
};

static const char main_key_US_phantom[MAIN_LEN][4] =
{
"`~","1!","2@","3#","4$","5%","6^","7&","8*","9(","0)","-_","= ",
"qQ","wW","eE","rR","tT","yY","uU","iI","oO","pP","[",
"aA","sS","dD","fF","gG","hH","jJ","kK","lL",";:","'"","|",
"zZ","xX","cC","vV","bB","nN","mM",",<",".>","/?",
"<>" /* 幽灵键 */
};

接着,把印在按键上的字符赋予每个扫描码。这为 US 101 键键盘(的次序)做的。他能够在 keyboard.c 的顶部找到。他还显示了假如没有第 102 键,您能够跳过他。

但是,对于多数国际化的 102 键键盘,我们使他易于您的使用。这些键盘的扫描码布局已很匹配在 main_key_scan 中的物理键盘布局了,所以您要做的任何事情就是完成在您主键盘上生成字符的任何的键(除了空格键之外),并把他们组织到一个适当的表中。只有第 102 个键是个例外,他通常在最后一行的第一个字符的左边(通常是 Z),他必须放到在最后一行之后的单独一行中。

例如,我的挪威(Norwegian)键盘看起来如下

? ! " # ? % & / ( ) = ? ` Back-
| 1 2@ 3?4$ 5 6 7{ 8[ 9] 0} ?space

Tab Q W E R T Y U I O P ? ^

Enter
Caps A S D F G H J K L ? ? *
Lock '

Sh- > Z X C V B N M ; : _ Shift

文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!