I am running OpenCL on a 64 bit Windows 7 machine with NVIDIA Quadro graphics card. I downloaded from the web source code for an implementation of OpenCL.Net C# wrapper. I usually build this OpenCL.Net source code in Visual Studio 2008 with target platform "Any CPU", generate DLL, and use it in my C# application programs. It works fine.

We have legacy programs that are built with target platform "x86", and they are not able to use the DLL. I tried rebuilding OpenCL.Net source code with target platform "x86" and using it instead, but it failed as well.

I think the problem is probably with
i) opencl.dll that comes with NVIDIA,
ii) OpenCL.Net, or
iii) the interface between i) and ii).

I searched for opencl.dll on my computer, and one is under C:\Windows\System32 and another under C:\Windows\SysWOW64.

When I build OpenCL.Net, I am guessing it automatically finds and uses the correct opencl.dll depending on the target platform. Or maybe not?

Any suggestions or pointers would be greatly appreciated.