MSI installer and Managed DirectX

Good news, I will continue working on this project over the summer as a CS498 project. As I work toward a deliverable milestone for the end of the semester, I’m working on an MSI installer and testing it on the HP Tablet PC’s (which doesn’t have the “Microsoft DirectX 9.0 SDK (October 2005)”) installed. The installer works fine and seems to register the CPolhemus COM object, but when the app launches I got a File not found exception. At first I thought it was some magic strings I had for loading textures. I refactored all of those to load the texture files from resource streams. I still got the exception after a number of different installations. So, finally I threw a try catch around Main() to get the details of the IO exception. It turns out that the program was failing to load the Direct3DX assembly. I’m not the only one. It seems like a pretty complicated subject. After I install the redistributable that comes bundled with the SDK “C:\Program Files\Microsoft DirectX 9.0 SDK (October 2005)\Redist” onto the target HP machine, then the application launches fine.

I also used the the Dependency Walker (which I remember having it’s own homepage, but which seems to be dead) from the Visual Studio 6 suite of tools. It’s mentioned in What is a DLL?. This let me pin down exactly what runtime DLL’s I needed for polhemus’ PDI.dll which include PiCmdIfc.dll, msvcp60.dll, msvcirt.dll, and msvcrt.dll. I bundle all those DLL’s in the installer. The drivers still have to be installed on the target machine, but the polhemus host and pdi software does not. I might just bundle the drivers for GP.

Comments are closed.