Вы заметите, что источником всех этих параметров командной строки является http://levicki.net/articles/tips/2006/09/29/HOWTO_Build_keyboard_layouts_for_Windows_x64.php. Причина, по которой он использовался, заключалась в том, что KLC 1.3 не поддерживал 64-битные операционные системы. KLC 1.4, добавлена поддержка 64-битных операционных систем. Это означает, что если вы можете избежать создания макета с помощью KLC, который поддерживает все необходимые функции, вы должны использовать его вместо этого.
Если, однако, вам нужны более продвинутые функции и вы хотите скомпилировать эти файлы самостоятельно, вам необходимо выяснить новые утилиты и параметры, которые используются для KLC 1.4. Те, что вы перечислили, устарели и предназначены для KLC 1.3.
Я использовал Process Monitor, чтобы выяснить, какие утилиты запускаются и какие параметры командной строки отправляются им. Вот они, в порядке их запуска:
"C:\Program Files\Microsoft Keyboard Layout Creator 1.4\bin\i386\kbdutool.exe" -n -x -u ..\.\tmpYourKeyboard.txt
C:\WINDOWS\system32\cmd.exe /c C:\PROGRA~1\MICROS~1.4\bin\i386\cl.exe -nologo -IC:\PROGRA~1\MICROS~1.4\inc -DNOGDICAPMASKS -DNOWINMESSAGES -DNOWINSTYLES -DNOSYSMETRICS -DNOMENUS -DNOICONS -DNOSYSCOMMANDS -DNORASTEROPS -DNOSHOWWINDOW -DOEMRESOURCE -DNOATOM -DNOCLIPBOARD -DNOCOLOR -DNOCTLMGR -DNODRAWTEXT -DNOGDI -DNOKERNEL -DNONLS -DNOMB -DNOMEMMGR -DNOMETAFILE -DNOMINMAX -DNOMSG -DNOOPENFILE -DNOSCROLL -DNOSERVICE -DNOSOUND -DNOTEXTMETRIC -DNOWINOFFSETS -DNOWH -DNOCOMM -DNOKANJI -DNOHELP -DNOPROFILER -DNODEFERWINDOWPOS -DNOMCX -DWIN32_LEAN_AND_MEAN -DRoster -DSTD_CALL -D_WIN32_WINNT=0x0500 /DWINVER=0x0500 -D_WIN32_IE=0x0500 /MD /c /Zp8 /Gy /W3 /WX /Gz /Gm- /EHs-c- /GR- /GF -Z7 /Oxs YourKeyboard.c
C:\PROGRA~1\MICROS~1.4\bin\i386\cl.exe -nologo -IC:\PROGRA~1\MICROS~1.4\inc -DNOGDICAPMASKS -DNOWINMESSAGES -DNOWINSTYLES -DNOSYSMETRICS -DNOMENUS -DNOICONS -DNOSYSCOMMANDS -DNORASTEROPS -DNOSHOWWINDOW -DOEMRESOURCE -DNOATOM -DNOCLIPBOARD -DNOCOLOR -DNOCTLMGR -DNODRAWTEXT -DNOGDI -DNOKERNEL -DNONLS -DNOMB -DNOMEMMGR -DNOMETAFILE -DNOMINMAX -DNOMSG -DNOOPENFILE -DNOSCROLL -DNOSERVICE -DNOSOUND -DNOTEXTMETRIC -DNOWINOFFSETS -DNOWH -DNOCOMM -DNOKANJI -DNOHELP -DNOPROFILER -DNODEFERWINDOWPOS -DNOMCX -DWIN32_LEAN_AND_MEAN -DRoster -DSTD_CALL -D_WIN32_WINNT=0x0500 /DWINVER=0x0500 -D_WIN32_IE=0x0500 /MD /c /Zp8 /Gy /W3 /WX /Gz /Gm- /EHs-c- /GR- /GF -Z7 /Oxs YourKeyboard.c
C:\WINDOWS\system32\cmd.exe /c C:\PROGRA~1\MICROS~1.4\bin\i386\rc.exe -r -iC:\PROGRA~1\MICROS~1.4\inc -DSTD_CALL -DCONDITION_HANDLING=1 -DNT_UP=1 -DNT_INST=0 -DWIN32=100 -D_NT1X_=100 -DWINNT=1 -D_WIN32_WINNT=0x0500 /DWINVER=0x0400 -D_WIN32_IE=0x0400 -DWIN32_LEAN_AND_MEAN=1 -DDEVL=1 -DFPO=1 -DNDEBUG -l 409 YourKeyboard.rc
C:\PROGRA~1\MICROS~1.4\bin\i386\rc.exe -r -iC:\PROGRA~1\MICROS~1.4\inc -DSTD_CALL -DCONDITION_HANDLING=1 -DNT_UP=1 -DNT_INST=0 -DWIN32=100 -D_NT1X_=100 -DWINNT=1 -D_WIN32_WINNT=0x0500 /DWINVER=0x0400 -D_WIN32_IE=0x0400 -DWIN32_LEAN_AND_MEAN=1 -DDEVL=1 -DFPO=1 -DNDEBUG -l 409 YourKeyboard.rc
C:\WINDOWS\system32\cmd.exe /c C:\PROGRA~1\MICROS~1.4\bin\i386\link.exe -nologo -merge:.edata=.data -merge:.rdata=.data -merge:.text=.data -merge:.bss=.data -section:.data,re -MERGE:_PAGE=PAGE -MERGE:_TEXT=.text -MACHINE:IX86 -SECTION:INIT,d -OPT:REF -OPT:ICF -IGNORE:4039,4078 -noentry -dll -libpath:C:\PROGRA~1\MICROS~1.4\lib\i386 -subsystem:native,5.0 -merge:.rdata=.text -PDBPATH:NONE -STACK:0x40000,0x1000 /opt:nowin98 -osversion:4.0 -version:4.0 /release -def:YourKeyboard.def YourKeyboard.res YourKeyboard.obj
C:\PROGRA~1\MICROS~1.4\bin\i386\link.exe -nologo -merge:.edata=.data -merge:.rdata=.data -merge:.text=.data -merge:.bss=.data -section:.data,re -MERGE:_PAGE=PAGE -MERGE:_TEXT=.text -MACHINE:IX86 -SECTION:INIT,d -OPT:REF -OPT:ICF -IGNORE:4039,4078 -noentry -dll -libpath:C:\PROGRA~1\MICROS~1.4\lib\i386 -subsystem:native,5.0 -merge:.rdata=.text -PDBPATH:NONE -STACK:0x40000,0x1000 /opt:nowin98 -osversion:4.0 -version:4.0 /release -def:YourKeyboard.def YourKeyboard.res YourKeyboard.obj
cvtres /machine:x86 /nologo /out:"C:\DOCUME~1\User\LOCALS~1\Temp\lnk1F.tmp" /readonly "YourKeyboard.res"
"C:\Program Files\Microsoft Keyboard Layout Creator 1.4\bin\i386\kbdutool.exe" -n -i -u ..\.\tmpYourKeyboard.txt
C:\WINDOWS\system32\cmd.exe /c C:\PROGRA~1\MICROS~1.4\bin\i386\IA64\cl.exe -nologo -IC:\PROGRA~1\MICROS~1.4\inc -DNOGDICAPMASKS -DNOWINMESSAGES -DNOWINSTYLES -DNOSYSMETRICS -DNOMENUS -DNOICONS -DNOSYSCOMMANDS -DNORASTEROPS -DNOSHOWWINDOW -DOEMRESOURCE -DNOATOM -DNOCLIPBOARD -DNOCOLOR -DNOCTLMGR -DNODRAWTEXT -DNOGDI -DNOKERNEL -DNONLS -DNOMB -DNOMEMMGR -DNOMETAFILE -DNOMINMAX -DNOMSG -DNOOPENFILE -DNOSCROLL -DNOSERVICE -DNOSOUND -DNOTEXTMETRIC -DNOWINOFFSETS -DNOWH -DNOCOMM -DNOKANJI -DNOHELP -DNOPROFILER -DNODEFERWINDOWPOS -DNOMCX -DWIN32_LEAN_AND_MEAN -DRoster -DSTD_CALL -D_WIN32_WINNT=0x0500 /DWINVER=0x0500 -D_WIN32_IE=0x0500 /MD /c /Zp8 /Gy /W3 /WX /Gz /Gm- /EHs-c- /GR- /GF -Z7 /Oxs YourKeyboard.c
C:\PROGRA~1\MICROS~1.4\bin\i386\IA64\cl.exe -nologo -IC:\PROGRA~1\MICROS~1.4\inc -DNOGDICAPMASKS -DNOWINMESSAGES -DNOWINSTYLES -DNOSYSMETRICS -DNOMENUS -DNOICONS -DNOSYSCOMMANDS -DNORASTEROPS -DNOSHOWWINDOW -DOEMRESOURCE -DNOATOM -DNOCLIPBOARD -DNOCOLOR -DNOCTLMGR -DNODRAWTEXT -DNOGDI -DNOKERNEL -DNONLS -DNOMB -DNOMEMMGR -DNOMETAFILE -DNOMINMAX -DNOMSG -DNOOPENFILE -DNOSCROLL -DNOSERVICE -DNOSOUND -DNOTEXTMETRIC -DNOWINOFFSETS -DNOWH -DNOCOMM -DNOKANJI -DNOHELP -DNOPROFILER -DNODEFERWINDOWPOS -DNOMCX -DWIN32_LEAN_AND_MEAN -DRoster -DSTD_CALL -D_WIN32_WINNT=0x0500 /DWINVER=0x0500 -D_WIN32_IE=0x0500 /MD /c /Zp8 /Gy /W3 /WX /Gz /Gm- /EHs-c- /GR- /GF -Z7 /Oxs YourKeyboard.c
C:\WINDOWS\system32\cmd.exe /c C:\PROGRA~1\MICROS~1.4\bin\i386\rc.exe -r -iC:\PROGRA~1\MICROS~1.4\inc -DSTD_CALL -DCONDITION_HANDLING=1 -DNT_UP=1 -DNT_INST=0 -DWIN32=100 -D_NT1X_=100 -DWINNT=1 -D_WIN32_WINNT=0x0500 /DWINVER=0x0400 -D_WIN32_IE=0x0400 -DWIN32_LEAN_AND_MEAN=1 -DDEVL=1 -DFPO=1 -DNDEBUG -l 409 YourKeyboard.rc
C:\PROGRA~1\MICROS~1.4\bin\i386\rc.exe -r -iC:\PROGRA~1\MICROS~1.4\inc -DSTD_CALL -DCONDITION_HANDLING=1 -DNT_UP=1 -DNT_INST=0 -DWIN32=100 -D_NT1X_=100 -DWINNT=1 -D_WIN32_WINNT=0x0500 /DWINVER=0x0400 -D_WIN32_IE=0x0400 -DWIN32_LEAN_AND_MEAN=1 -DDEVL=1 -DFPO=1 -DNDEBUG -l 409 YourKeyboard.rc
C:\WINDOWS\system32\cmd.exe /c C:\PROGRA~1\MICROS~1.4\bin\i386\link.exe -nologo -merge:.edata=.data -merge:.srdata=.data -merge:.text=.data -merge:.bss=.data -section:.data,re -MERGE:_PAGE=PAGE -MERGE:_TEXT=.text /MACHINE:IA64 -SECTION:INIT,d -OPT:REF -OPT:ICF -IGNORE:4039,4078 -noentry -dll -libpath:C:\PROGRA~1\MICROS~1.4\lib\ia64 -subsystem:native,5.0 -merge:.rdata=.text -PDBPATH:NONE -STACK:0x40000,0x1000 /opt:nowin98 -osversion:4.0 -version:4.0 /release -def:YourKeyboard.def YourKeyboard.res YourKeyboard.obj
C:\PROGRA~1\MICROS~1.4\bin\i386\link.exe -nologo -merge:.edata=.data -merge:.srdata=.data -merge:.text=.data -merge:.bss=.data -section:.data,re -MERGE:_PAGE=PAGE -MERGE:_TEXT=.text /MACHINE:IA64 -SECTION:INIT,d -OPT:REF -OPT:ICF -IGNORE:4039,4078 -noentry -dll -libpath:C:\PROGRA~1\MICROS~1.4\lib\ia64 -subsystem:native,5.0 -merge:.rdata=.text -PDBPATH:NONE -STACK:0x40000,0x1000 /opt:nowin98 -osversion:4.0 -version:4.0 /release -def:YourKeyboard.def YourKeyboard.res YourKeyboard.obj
cvtres /machine:ia64 /nologo /out:"C:\DOCUME~1\User\LOCALS~1\Temp\lnk20.tmp" /readonly "YourKeyboard.res"
"C:\Program Files\Microsoft Keyboard Layout Creator 1.4\bin\i386\kbdutool.exe" -n -m -u ..\.\tmpYourKeyboard.txt
C:\WINDOWS\system32\cmd.exe /c C:\PROGRA~1\MICROS~1.4\bin\i386\amd64\cl.exe -nologo -IC:\PROGRA~1\MICROS~1.4\inc -DNOGDICAPMASKS -DNOWINMESSAGES -DNOWINSTYLES -DNOSYSMETRICS -DNOMENUS -DNOICONS -DNOSYSCOMMANDS -DNORASTEROPS -DNOSHOWWINDOW -DOEMRESOURCE -DNOATOM -DNOCLIPBOARD -DNOCOLOR -DNOCTLMGR -DNODRAWTEXT -DNOGDI -DNOKERNEL -DNONLS -DNOMB -DNOMEMMGR -DNOMETAFILE -DNOMINMAX -DNOMSG -DNOOPENFILE -DNOSCROLL -DNOSERVICE -DNOSOUND -DNOTEXTMETRIC -DNOWINOFFSETS -DNOWH -DNOCOMM -DNOKANJI -DNOHELP -DNOPROFILER -DNODEFERWINDOWPOS -DNOMCX -DWIN32_LEAN_AND_MEAN -DRoster -DSTD_CALL -D_WIN32_WINNT=0x0500 /DWINVER=0x0500 -D_WIN32_IE=0x0500 /MD /c /Zp8 /Gy /W3 /WX /Gz /Gm- /EHs-c- /GR- /GF -Z7 /Oxs YourKeyboard.c
C:\PROGRA~1\MICROS~1.4\bin\i386\amd64\cl.exe -nologo -IC:\PROGRA~1\MICROS~1.4\inc -DNOGDICAPMASKS -DNOWINMESSAGES -DNOWINSTYLES -DNOSYSMETRICS -DNOMENUS -DNOICONS -DNOSYSCOMMANDS -DNORASTEROPS -DNOSHOWWINDOW -DOEMRESOURCE -DNOATOM -DNOCLIPBOARD -DNOCOLOR -DNOCTLMGR -DNODRAWTEXT -DNOGDI -DNOKERNEL -DNONLS -DNOMB -DNOMEMMGR -DNOMETAFILE -DNOMINMAX -DNOMSG -DNOOPENFILE -DNOSCROLL -DNOSERVICE -DNOSOUND -DNOTEXTMETRIC -DNOWINOFFSETS -DNOWH -DNOCOMM -DNOKANJI -DNOHELP -DNOPROFILER -DNODEFERWINDOWPOS -DNOMCX -DWIN32_LEAN_AND_MEAN -DRoster -DSTD_CALL -D_WIN32_WINNT=0x0500 /DWINVER=0x0500 -D_WIN32_IE=0x0500 /MD /c /Zp8 /Gy /W3 /WX /Gz /Gm- /EHs-c- /GR- /GF -Z7 /Oxs YourKeyboard.c
C:\WINDOWS\system32\cmd.exe /c C:\PROGRA~1\MICROS~1.4\bin\i386\rc.exe -r -iC:\PROGRA~1\MICROS~1.4\inc -DSTD_CALL -DCONDITION_HANDLING=1 -DNT_UP=1 -DNT_INST=0 -DWIN32=100 -D_NT1X_=100 -DWINNT=1 -D_WIN32_WINNT=0x0500 /DWINVER=0x0400 -D_WIN32_IE=0x0400 -DWIN32_LEAN_AND_MEAN=1 -DDEVL=1 -DFPO=1 -DNDEBUG -l 409 YourKeyboard.rc
C:\PROGRA~1\MICROS~1.4\bin\i386\rc.exe -r -iC:\PROGRA~1\MICROS~1.4\inc -DSTD_CALL -DCONDITION_HANDLING=1 -DNT_UP=1 -DNT_INST=0 -DWIN32=100 -D_NT1X_=100 -DWINNT=1 -D_WIN32_WINNT=0x0500 /DWINVER=0x0400 -D_WIN32_IE=0x0400 -DWIN32_LEAN_AND_MEAN=1 -DDEVL=1 -DFPO=1 -DNDEBUG -l 409 YourKeyboard.rc
C:\WINDOWS\system32\cmd.exe /c C:\PROGRA~1\MICROS~1.4\bin\i386\link.exe -nologo -merge:.edata=.data -merge:.rdata=.data -merge:.text=.data -merge:.bss=.data -section:.data,re -MERGE:_PAGE=PAGE -MERGE:_TEXT=.text -MACHINE:AMD64 -SECTION:INIT,d -OPT:REF -OPT:ICF -IGNORE:4039,4078 -noentry -dll -libpath:C:\PROGRA~1\MICROS~1.4\lib\amd64 -subsystem:native,5.0 -merge:.rdata=.text -PDBPATH:NONE -STACK:0x40000,0x1000 /opt:nowin98 -osversion:4.0 -version:4.0 /release -def:YourKeyboard.def YourKeyboard.res YourKeyboard.obj
C:\PROGRA~1\MICROS~1.4\bin\i386\link.exe -nologo -merge:.edata=.data -merge:.rdata=.data -merge:.text=.data -merge:.bss=.data -section:.data,re -MERGE:_PAGE=PAGE -MERGE:_TEXT=.text -MACHINE:AMD64 -SECTION:INIT,d -OPT:REF -OPT:ICF -IGNORE:4039,4078 -noentry -dll -libpath:C:\PROGRA~1\MICROS~1.4\lib\amd64 -subsystem:native,5.0 -merge:.rdata=.text -PDBPATH:NONE -STACK:0x40000,0x1000 /opt:nowin98 -osversion:4.0 -version:4.0 /release -def:YourKeyboard.def YourKeyboard.res YourKeyboard.obj
cvtres /machine:amd64 /nologo /out:"C:\DOCUME~1\User\LOCALS~1\Temp\lnk21.tmp" /readonly "YourKeyboard.res"
"C:\Program Files\Microsoft Keyboard Layout Creator 1.4\bin\i386\kbdutool.exe" -n -o -u ..\.\tmpYourKeyboard.txt
C:\WINDOWS\system32\cmd.exe /c C:\PROGRA~1\MICROS~1.4\bin\i386\cl.exe -nologo -IC:\PROGRA~1\MICROS~1.4\inc -DNOGDICAPMASKS -DNOWINMESSAGES -DNOWINSTYLES -DNOSYSMETRICS -DNOMENUS -DNOICONS -DNOSYSCOMMANDS -DNORASTEROPS -DNOSHOWWINDOW -DOEMRESOURCE -DNOATOM -DNOCLIPBOARD -DNOCOLOR -DNOCTLMGR -DNODRAWTEXT -DNOGDI -DNOKERNEL -DNONLS -DNOMB -DNOMEMMGR -DNOMETAFILE -DNOMINMAX -DNOMSG -DNOOPENFILE -DNOSCROLL -DNOSERVICE -DNOSOUND -DNOTEXTMETRIC -DNOWINOFFSETS -DNOWH -DNOCOMM -DNOKANJI -DNOHELP -DNOPROFILER -DNODEFERWINDOWPOS -DNOMCX -DWIN32_LEAN_AND_MEAN -DRoster -DSTD_CALL -D_WIN32_WINNT=0x0500 /DWINVER=0x0500 -D_WIN32_IE=0x0500 /MD /c /Zp8 /Gy /W3 /WX /Gz /Gm- /EHs-c- /GR- /GF -Z7 /Oxs -DBUILD_WOW6432 -D_WOW6432_ YourKeyboard.c
C:\PROGRA~1\MICROS~1.4\bin\i386\cl.exe -nologo -IC:\PROGRA~1\MICROS~1.4\inc -DNOGDICAPMASKS -DNOWINMESSAGES -DNOWINSTYLES -DNOSYSMETRICS -DNOMENUS -DNOICONS -DNOSYSCOMMANDS -DNORASTEROPS -DNOSHOWWINDOW -DOEMRESOURCE -DNOATOM -DNOCLIPBOARD -DNOCOLOR -DNOCTLMGR -DNODRAWTEXT -DNOGDI -DNOKERNEL -DNONLS -DNOMB -DNOMEMMGR -DNOMETAFILE -DNOMINMAX -DNOMSG -DNOOPENFILE -DNOSCROLL -DNOSERVICE -DNOSOUND -DNOTEXTMETRIC -DNOWINOFFSETS -DNOWH -DNOCOMM -DNOKANJI -DNOHELP -DNOPROFILER -DNODEFERWINDOWPOS -DNOMCX -DWIN32_LEAN_AND_MEAN -DRoster -DSTD_CALL -D_WIN32_WINNT=0x0500 /DWINVER=0x0500 -D_WIN32_IE=0x0500 /MD /c /Zp8 /Gy /W3 /WX /Gz /Gm- /EHs-c- /GR- /GF -Z7 /Oxs -DBUILD_WOW6432 -D_WOW6432_ YourKeyboard.c
C:\WINDOWS\system32\cmd.exe /c C:\PROGRA~1\MICROS~1.4\bin\i386\rc.exe -r -iC:\PROGRA~1\MICROS~1.4\inc -DSTD_CALL -DCONDITION_HANDLING=1 -DNT_UP=1 -DNT_INST=0 -DWIN32=100 -D_NT1X_=100 -DWINNT=1 -D_WIN32_WINNT=0x0500 /DWINVER=0x0400 -D_WIN32_IE=0x0400 -DWIN32_LEAN_AND_MEAN=1 -DDEVL=1 -DFPO=1 -DNDEBUG -l 409 YourKeyboard.rc
C:\PROGRA~1\MICROS~1.4\bin\i386\rc.exe -r -iC:\PROGRA~1\MICROS~1.4\inc -DSTD_CALL -DCONDITION_HANDLING=1 -DNT_UP=1 -DNT_INST=0 -DWIN32=100 -D_NT1X_=100 -DWINNT=1 -D_WIN32_WINNT=0x0500 /DWINVER=0x0400 -D_WIN32_IE=0x0400 -DWIN32_LEAN_AND_MEAN=1 -DDEVL=1 -DFPO=1 -DNDEBUG -l 409 YourKeyboard.rc
C:\WINDOWS\system32\cmd.exe /c C:\PROGRA~1\MICROS~1.4\bin\i386\link.exe -nologo -merge:.edata=.data -merge:.rdata=.data -merge:.text=.data -merge:.bss=.data -section:.data,re -MERGE:_PAGE=PAGE -MERGE:_TEXT=.text -MACHINE:IX86 -SECTION:INIT,d -OPT:REF -OPT:ICF -IGNORE:4039,4078 -noentry -dll -libpath:C:\PROGRA~1\MICROS~1.4\lib\i386 -subsystem:native,5.0 -merge:.rdata=.text -PDBPATH:NONE -STACK:0x40000,0x1000 /opt:nowin98 -osversion:4.0 -version:4.0 /release -def:YourKeyboard.def YourKeyboard.res YourKeyboard.obj
C:\PROGRA~1\MICROS~1.4\bin\i386\link.exe -nologo -merge:.edata=.data -merge:.rdata=.data -merge:.text=.data -merge:.bss=.data -section:.data,re -MERGE:_PAGE=PAGE -MERGE:_TEXT=.text -MACHINE:IX86 -SECTION:INIT,d -OPT:REF -OPT:ICF -IGNORE:4039,4078 -noentry -dll -libpath:C:\PROGRA~1\MICROS~1.4\lib\i386 -subsystem:native,5.0 -merge:.rdata=.text -PDBPATH:NONE -STACK:0x40000,0x1000 /opt:nowin98 -osversion:4.0 -version:4.0 /release -def:YourKeyboard.def YourKeyboard.res YourKeyboard.obj
cvtres /machine:x86 /nologo /out:"C:\DOCUME~1\User\LOCALS~1\Temp\lnk22.tmp" /readonly "YourKeyboard.res"