0

我想构建一个在 Win7 及更高版本上运行而不使用 MSKLC 的键盘布局。

我下载了键盘布局示例,虽然它说它需要 VS2013 Preview 和 WDK8.1 Preview,但在将“Platform Toolset”属性从“WindowsApplicationForDrivers8.1”更改为“WindowsApplicationForDrivers8.0”后,它使用 VS2012 和 WDK8 构建。

但是:检查kbdus.dll使用 Dependency Viewer 构建的内容表明它kernel32.dllmsvcr110.dll. 这与kbdus.dllfromWindows\system32目录形成对比,正如人们所预料的那样,它不导入任何东西并导出一个单一的功能。

我的第一个问题:构建的 dll 是从中导入的问题msvcr110.dll吗?

我想是的,因为Win7不包含这个dll。(老实说,我想知道这是怎么回事,因为这些是 Microsoft 官方示例。)

调整编译器和链接器设置后,我设法摆脱了 from 的导入msvcr110.dll,但是构建的 dll 仍然导入了很多东西,并且与原始 (7kB) 相比相当大 (> 70kB kbdus.dll)。x86 和 x64、调试和发布版本也是如此。我在找/compileandlinkanddonothingfancy开关。

我的第二个问题:如何正确构建这些 dll?

(注意:我发现了这个问题,但它是关于 WDK7 的。如果我没有用 WDK8.0 得到它,那将是我接下来尝试的)

4

1 回答 1

1

我认为应该传递/noentry给链接器。

于 2013-07-01T11:12:44.360 回答