Tuesday, January 03, 2006


x.cpp: fatal error C1083: Cannot open type library file...

What does it mean? Particularly when you've done something simple like

#import <msxml2.dll> named_guids

and it was working fine yesterday, or last week, or whatever.

In my case, I made the mistake of installing Lilypond. Now, Lilypond is nice, but its installer isn't quite so nice, and it prepends the Lilypond binary path to your PATH environment variable, system-wide.

It seems that Visual Studio 2005 really, really dislikes having something other than %SystemRoot%\System32 at the start of your PATH. It's not just type library import that fails, either - embedding manifests fails with a PRJ0003 error spawning "cmd.exe".

I wish that the various open-source projects would come up with some nicer, more Windows-friendly installation methods. Now, I know that Windows users are not necessarily some people's first thought, but really - if you put a Windows version up for download, is it too much to ask for at least one version not to fail?

Not that Lilypond works if you put its directory in the PATH, anyway - you need to fully qualify the app name to run it from the command line, otherwise you get various errors from the Scheme interpreter. Lovely.

While we're on the subject of Lilypond, why doesn't its EPS export come up with the correct bounding box? I'd like a nice and tight bounding box around the music, but instead I get an inch or more white space above and to each side. For whatever reason, Ghostscript doesn't generate a correct bounding box either, requiring some "interesting" manipulation of the file to get a good box. Ouch.