#include <stdlib.h>
#include <libpq-fe.h>int main( int argc, char * argv[] )
{
  PGconn * connection;  if( argc != 2 )
  {
  printf( "usage : %s \"connection-string\"\n", argv[0] );
  printf( "example: %s \"user=myname password=cows\"\n", argv[0]);
  exit( 1 );
  }  if(( connection = PQconnectdb( argv[1] )) == NULL )
  {
  printf( "Fatal error - unable to allocate connection\n" );
  exit( 1 );
  }  if( PQstatus( connection ) != CONNECTION_OK )
  printf( "%s\n", PQerrorMessage( connection ));
  else
  printf( "Connection ok, disconnecting\n" );  PQfinish( connection );  exit( 0 );}
编译完后出现
QueryDlg.obj : error LNK2019: 无法解析的外部符号 _PQerrorMessage@4 ,该符号在函数 "public: int __thiscall CQueryDlg::CSearchDataBase(void)" (?CSearchDataBase@CQueryDlg@@QAEHXZ) 中被引用
QueryDlg.obj : error LNK2019: 无法解析的外部符号 _PQstatus@4 ,该符号在函数 "public: int __thiscall CQueryDlg::CSearchDataBase(void)" (?CSearchDataBase@CQueryDlg@@QAEHXZ) 中被引用
QueryDlg.obj : error LNK2019: 无法解析的外部符号 _PQconnectdb@4 ,该符号在函数 "public: int __thiscall CQueryDlg::CSearchDataBase(void)" (?CSearchDataBase@CQueryDlg@@QAEHXZ) 中被引用
Debug/Query.exe : fatal error LNK1120: 3 个无法解析的外部命令
补充:有包含静态库,libpq.lib,头文件libpq-fe.h,依赖项为"C:\Program Files\PostgreSQL\8.3\lib\libpq.lib"

解决方案 »

  1.   

    现在编译通过,运行时出现没有找到LIBPQ.dll,因为这个应用程序未能启动
    请问该怎么办
      

  2.   

    LIBPQ.dll
    网上找一下,然后试一下。
      

  3.   

    你把你安装的pgsql或者它的客户端的libpq.dll文件所在的目录添加到环境变量path的顶头,再启动应用程序就可以了。
      

  4.   

    vs.net 2003 
    都重启了,还是一样,麻烦了
      

  5.   

    怎么可能,你的libpq.dll所在目录,不是文件全路径
    e.g.
    libpq.dll位于d:\pgsql\lib
    你应该把d:\pgsql\lib追加到path环境变量里(操作系统)(注意, 不是文件的全路径:d:\pgsql\lib\libpq.dll),不是vs.net 2003的options的path里。
    这之后再重启vs.net 2003