I am currently working with Studio 2008 on an XP/Windows7 platform and all my code is in C++. My program loads an external dll named AduHid.dll. This dll is used to control a data acquisition board via a USB connection.
When I do NOT use the intel compiler, everything works as advertised, no problems. When I optimize my code using the intel compiler, about 1 time in 10, the interface with the data acq board fails. Specifically, when I try and read the state of the digital I/O port, the values always come back all 0's or all 1's. When I write to the board, the commands appear to work, so the interface 'partially' works.
The file AduHid.dll is supplied by the company and I am simply linking to it. I have tried both implicitly and explicitly loading the dll in case there was a race condition going on (I gave the dll 5 full seconds to load, which is forever), but the problem persists.
To make things interesting,let me explain how the code is built/used. The code is written and compiled on a computer with a Windows XP operating system. The error ONLY occurs, when I run the code on our target computer which is running Windows 7 pro. The error does not occur when running on an XP computer.
Has anyone seen a problem like this or have any idea about what's going on?