Ok, I’ve tested this a bit more and had interesting results:
On machine A (win32, with 8800 card, CUDA driver, tools, and SDK installed) everything works fine.
On machine B (win32, no CUDA tools or driver, but cuda.dll cudart.dll and cutil32.dll all present), the device query program works fine. It reports emulation only, which is correct for machine B. However, when I take the device query function and compile it into a dll which I then call from java, it crashes on the dll load. Java reports that “the application is configured incorrectly,” which is not a terribly helpful error message.
The part that confuses me is that the device query program, run as an exe, works just fine on machine B. Also, calling into my device query dll works just fine on machine A. What is it that’s missing on machine B that only affects it when loading a dll?