Jim
Jim

Reputation: 1066

Linking to and using libpq with Visual C++ Express 2010

I am trying to access from Visual C++ 2010 Express a Postgres database. I have both on my machine but the SQL calls do not work at all. I have searched many sites. I think that this version of Express does not have any default database connections like the non-express version (especially Visual C++ 2008).

The only thing I could find was the following link and I have following the modifications to the Project Properties area of Visual C++ Express.

http://www.askyb.com/cpp/c-postgresql-example/

When I try to run the C++ code in that website I get errors indicating that it cannot find the functions.

Do you have any ideas of what I am doing wrong? Would it be better for me to use something other than Visual C++ Express 2010 to connect to a postgres db? One of the other Express versions? The regular (non-express) Visual C++?

Thanks

Upvotes: 4

Views: 4851

Answers (3)

Jano Crema
Jano Crema

Reputation: 11

You need do recompile the libpq with MSVC (nmake /f win32.mak all), after that, you need to set your project to use that library, and change the Common Language Runtime Support to (/clr) and not to clr/pure.

Upvotes: 1

Craig Ringer
Craig Ringer

Reputation: 324471

You may also be interested in libpqtypes and libpqxx if you're working with PostgreSQL and libpq. The first provides greatly simplified access to data values from libpq, and the latter provides a more C++-friendly interface.

As for the errors, most likely:

  • Your include path or link library path is wrong if it's failing at compile-time or link time; or
  • Your PATH doesn't include libpq, if it's failing at runtime.

Upvotes: 2

Christian Stieber
Christian Stieber

Reputation: 12496

Most likely (you didn't provide any actual error messages) the problem is your setup. You need to add the correct header ("include") directory and library directory; if you just copied them from some tutorial, make sure they actually point to the real place where these files (.h and .lib files, respectively) are.

Upvotes: 1

Related Questions