Я хотел бы создать раскладку клавиатуры, которая работает на Win7 и более поздних версиях без использования MSKLC.
Я загрузил примеры раскладки клавиатуры, и хотя там написано требуется предварительная версия VS2013 и предварительная версия WDK8.1, она собирается с использованием VS2012 и WDK8 после изменения свойства «Набор инструментов платформы» с «WindowsApplicationForDrivers8.1» на «WindowsApplicationForDrivers8.0».
Но: проверка kbdus.dll
, созданного с помощью средства просмотра зависимостей, показывает, что он импортирует довольно много материала из kernel32.dll
и из msvcr110.dll
. Это в отличие от kbdus.dll
из каталога Windows\system32
, который, как и следовало ожидать, ничего не импортирует и экспортирует одну-единственную функцию.
Мой первый вопрос: проблема в том, что встроенная dll импортирует из msvcr110.dll
?
Я думаю, что это так, поскольку Win7 не включает эту dll. (Честно говоря, мне интересно, как такое может быть, ведь это официальные образцы Microsoft.)
Поработав с настройками компилятора и компоновщика, мне удалось избавиться от импорта из msvcr110.dll
, но созданная dll по-прежнему импортирует много материала и довольно велика (> 70 КБ) по сравнению с исходной kbdus.dll
(7 КБ). То же самое с x86 и x64, сборками Debug и Release. Я ищу переключатель /compileandlinkanddonothingfancy
.
Мой второй вопрос: как правильно построить эти dll?
(Примечание: я нашел этот вопрос, но он касается WDK7. Это будет быть тем, что я попробую дальше, если я не получу его с WDK8.0)