geekhack

geekhack Community => Keyboards => Topic started by: keyb_gr on Sat, 22 May 2010, 15:48:17

Title: MSKLC vs. disable8dot3, or how to shoot yourself in the foot
Post by: keyb_gr on Sat, 22 May 2010, 15:48:17
You folks may remember that I had no luck getting Microsoft Keyboard Layout Creator 1.3 to compile a DLL on any of my machines.

Turns out the solution is dead simple - only AFTER I had installed VC++ 2005 Express, the platform SDK and DDK, of course (following a lengthy update session on a secondary machine). This is the blog entry that put me on the right track:
http://levicki.net/articles/tips/2006/09/29/HOWTO_Build_keyboard_layouts_for_Windows_x64.php
I ran the executable mentioned on a command line, and got error messages about "C:\PROGRA~1\Microsoft" not being found when CL.EXE, RC.EXE and LINK.EXE were to be run (all "returned 1"). Then it dawned on me...

A long, long time ago, I had optimized some file system settings with fsutil, which included setting disable8dot3 = 1 for better performance. In other words, there was no equivalent short file name for the "Microsoft Keyboard Layout Creator" folder. Apparently that would have been needed. (The path stopped at the first space, as you can see.)

I then copied the whole directory to D:\MSKLC, and it ran fine.:doh:
So you do not need any additional software to run MSKLC after all.

Well, at least I have a perfectly up-to-date Win2k machine now that I can use for a bit of programming. I still have to get wxWidgets, and then I can in theory give compiling Audacity a shot...
Title: MSKLC vs. disable8dot3, or how to shoot yourself in the foot
Post by: keyb_gr on Sun, 23 May 2010, 20:37:51
More oddities: MSKLC will apparently refuse to compile if a DLL with the same name as the build target is already in use on the same machine. kbdutool doesn't mind though. So I'm now able to update my layouts if needed, great.
Title: MSKLC vs. disable8dot3, or how to shoot yourself in the foot
Post by: DreymaR on Tue, 25 May 2010, 04:15:13
How about using MSKLC 1.4 instead?

Do you by the way understand the input chain well enough by now that you could help me getting a Windows system to run my DLL (as compiled by MSKLC) instead of the installed ones portably by means of a script (i.e., without installing files or modifying registry entries... which is the really tricky part because that means you cannot specify a locator to LoadKeyboardLayout unless you do something very tricksy that I'm unaware of)? It'd be ever so nice if there were a way to redirect the DLL calls but I'm having my doubts as to whether it's doable now.
Title: MSKLC vs. disable8dot3, or how to shoot yourself in the foot
Post by: ch_123 on Tue, 25 May 2010, 04:48:56
This reminds me of a discussion in another thread a few days ago about why Windows needs a package manager...