【发布时间】:2013-06-26 04:16:51
【问题描述】:
我想构建一个在 Win7 及更高版本上运行而不使用 MSKLC 的键盘布局。
我下载了Keyboard Layout Samples,虽然它说它需要 VS2013 Preview 和 WDK8.1 Preview,但在将“Platform Toolset”属性从“WindowsApplicationForDrivers8.1”更改为“WindowsApplicationForDrivers8.0”后,它使用 VS2012 和 WDK8 构建.
但是:检查使用 Dependency Viewer 构建的 kbdus.dll 会发现它从 kernel32.dll 和 msvcr110.dll 导入了很多东西。这与来自Windows\system32 目录的kbdus.dll 形成对比,正如人们所预料的那样,它不导入任何内容并导出一个函数。
我的第一个问题:构建的 dll 从 msvcr110.dll 导入是否存在问题?
我猜是的,因为 Win7 不包含这个 dll。 (老实说,我想知道这是怎么回事,因为这些是 Microsoft 官方示例。)
调整编译器和链接器设置后,我设法摆脱了来自 msvcr110.dll 的导入,但构建的 dll 仍然导入了很多东西,而且与原来的 kbdus.dll 相比相当大(> 70kB)( 7kB)。 x86 和 x64、调试和发布版本也是如此。我正在寻找/compileandlinkanddonothingfancy 开关。
我的第二个问题:如何正确构建这些 dll?
(注意:我找到了this question,但它是关于 WDK7 的。如果我没有用 WDK8.0 得到它,那将是我接下来尝试的)
【问题讨论】:
标签: windows wdk keyboard-layout