Author Topic: MSKLC vs. disable8dot3, or how to shoot yourself in the foot  (Read 3060 times)

0 Members and 1 Guest are viewing this topic.

Offline keyb_gr

  • Thread Starter
  • Posts: 1384
  • Location: Germany
  • Cherrified user
    • My keyboard page (German)
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...
« Last Edit: Sat, 22 May 2010, 15:59:25 by keyb_gr »
Hardware in signatures clutters Google search results. There should be a field in the profile for that (again).

This message was probably typed on a vintage G80-3000 with blues. Double-shots, baby. :D

Offline keyb_gr

  • Thread Starter
  • Posts: 1384
  • Location: Germany
  • Cherrified user
    • My keyboard page (German)
MSKLC vs. disable8dot3, or how to shoot yourself in the foot
« Reply #1 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.
Hardware in signatures clutters Google search results. There should be a field in the profile for that (again).

This message was probably typed on a vintage G80-3000 with blues. Double-shots, baby. :D

Offline DreymaR

  • Posts: 184
  • Location: Norway
  • Colemak forum guy
    • DreymaR's Big Bag of Kbd Tricks
MSKLC vs. disable8dot3, or how to shoot yourself in the foot
« Reply #2 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.
Better burden you cannot carry than man-wisdom much ~ Hávamál

Offline ch_123

  • * Exalted Elder
  • Posts: 5860
MSKLC vs. disable8dot3, or how to shoot yourself in the foot
« Reply #3 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...