先普及一下基本知识,IME(input method editor)/IMM(input method mananger)是巨软公司为了其全球利益而开发的一项耗资巨大的工程,其主要面向的是远东地区,因为这帮人用的方块字让那些印欧的很郁闷,于是由某J牵头研发了这一项工程,后来被证明是一项造福人类的伟大工程,不过对于公司利益来说更伟大。
闲话不表,言归正传。本文主要介绍输入法工程的配置方法,当某菜满天欢喜的照着freepy画了一个瓢之后,点个compile,发现叮叮当当跳出几万条error,当时不禁垂头丧气。再来一遍,还是那么多error,就冥想2分钟,挠头4分钟,抓狂8分钟。然后疯狂上网修行,N天过后再来还是不行,于是哭天戗地,痛不欲生。这时看了本文,就有种被吾高屋建瓴地醍醐灌顶的感觉,生活还是很美好的。
输入法分为主文件和支持文件。主文件指的就是后缀名为ime的文件,支持文件指的是词库文件和语言模型文件等。ime文件本质上是一个dll文件,关于dll不懂的去学习《windows编程》,而ime文件的特殊之处在下面。
1.创建Dll工程,使用标准windows库,因为ime用的是sdk而不是mfc。
2.添加包含目录、预处理器
包含目录为
$/Microsoft Visual Studio .NET/Vc7/PlatformSDK/Include
预处理器为
WIN32;_WINDOWS;_DEBUG;_USRDLL;INSUN_EXPORTS
3.添加附加库目录和库文件
附加库目录为
$/Microsoft Visual Studio .NET/Vc7/PlatformSDK/Lib
库文件为
Htmlhelp.Lib Msimg32.lib imm32.lib comctl32.lib odbc32.lib odbccp32.lib
3.更改版本信息
当遇到ImmInstallIME()函数返回NULL,或提示“无法加载XXXX键盘布局”的错误时。
将FILESUBTYPE 改为VFT2 DRV INPUTMETHOD