Unable to find an entry point named 'InterlockedIncrement' in DLL 'kernel32.dll' - VS2005@Win7 64 bit

MPękalski picture MPękalski · Mar 17, 2011 · Viewed 8.8k times · Source

I have a problem with my Visual Studio 2005 C# project. I have been using it under Windows XP, since Monday. Then my laptop broke down and on my new one I have Windows 7 64 bit and I am still using VS 2005.

There is no problem with compilation of the source, but when I run the program it breaks on the line below

OdbcConnection cn;
cn = new OdbcConnection("dsn=My_dsn_name;");

I get the error:

EnrtyPointNotFoundExcepition was unhalted

Unable to find an entry point named 'InterlockedIncrement' in DLL 'kernel32.dll'

I am trying to connect with a Postgres 8.4 database using PostgresODBC 64 bit driver.

Any solution or workaround is welcome. I need to stress that the solution I am building needs to run under Windows XP 32bit.

Updated information about the issue (from my respones to the comments but not only):

  1. When I tried to add new connection to my VS project I got the message ERROR [IM014] [Microsoft][ODBC Driver Manager] The specified DSN contains an architecture mismatch between the Driver and Application. I use Windows 7 64 bit, Postgres ODBC 64 bit Driver ver. 9.00.0200, Postgres 8.4 32 bit.
  2. I have never used Dependency Walker before. But I have opened kernel32.dll from both \system32 and \SysWOW64 and InterlockedIncrement is present in files from both folders.
  3. I have some TableAdapters, and I use them to fetch data from the Postgres. It was set when I was using WinXP, and it still works. On the other hand, when in VS2005 in the properties of TableAdapter I click on "..." next to Data->CommandText it displays a message Failed to call the ODBC driver connection utility.

EDIT: I added points 1-3 above.

Answer

Hagunenon picture Hagunenon · Mar 12, 2012

I have just had exactly the same issue, and found a surprisingly simple solution: Use System.Data.Odbc instead of Microsoft.Data.Odbc in the imports.