June 29th, 2005

Not Too Sharp

So we've got a problem where our program crashes when printing to a nice, shiny, new Sharp Color Copier/Printer. Of course, we don't own one of these beasties and since they cost about $25,000 (if I'm reading the right website), we're not likely to. But without being able to see what's going on, this is a classic black box problem.

Bright boy that I am, I come up with a solution: if I can VPN into the client site and connect to their printer, I can try to replicate the bug in the debugger. After many trials and tribulations, the client sets up the VPN and I can't connect.

Our firewall won't let me out.

One trip to Office Depot later, I (ok, my company) am the proud owner of a brand-new USB 2.0 external modem. Which allows me to dial up an ISP using a borrowed account and VPN into his network.

Where the printer doesn't want to talk to me. Eventually, we convince the printer that it wants to let me connect to it. (This connectivity comes and goes, seemingly at random. It's a mystery.)

The debugger reports that various Sharp-related DLLs are gleefully loading and unloading (for no known reason -- I understand loading the DLL, but I don't understand unloading it and then reloading it again. Who programmed these drivers?). But everything appears to be working fine until the MSCMS.DLL loads, which is shortly followed by a crash, deep in the bowels of the Sharp drivers.

MSCMS.DLL (so Google tells me) is apparently the Microsoft Color Management System DLL. And some of the reports suggest that it's just a wee bit touchy. Or is subject to incompatibilities, depending on what version of the DLL you're using.

But the box is no longer black. It's more like obsidian -- translucent, but still opaque.