【问题标题】:Linking to and using libpq with Visual C++ Express 2010通过 Visual C++ Express 2010 链接并使用 libpq
【发布时间】:2013-11-19 03:59:26
【问题描述】:

我正在尝试从 Visual C++ 2010 Express 访问 Postgres 数据库。我的机器上都有,但 SQL 调用根本不起作用。我搜索了很多网站。我认为这个版本的 Express 没有像 non-express 版本(尤其是 Visual C++ 2008)那样的任何默认数据库连接。

我唯一能找到的是以下链接,并且我已经对 Visual C++ Express 的项目属性区域进行了修改。

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

当我尝试在该网站上运行 C++ 代码时,我收到错误消息,指出它找不到函数。

你对我做错了什么有任何想法吗?使用 Visual C++ Express 2010 以外的东西连接到 postgres 数据库对我来说会更好吗?其他 Express 版本之一?常规(非表达)Visual C++?

谢谢

【问题讨论】:

  • Visual C++ Express 2010 已经足够好了。通过基本上按照您提到的教程中的操作为我使用pgstream。您应该在问题中添加从 Visual 复制粘贴的实际错误消息。
  • 您的问题表明您正在构建,但运行时出现异常,是否准确(您能否提供您所看到的错误消息)?
  • 请显示您的项目配置(或其中提到 libpq 的任何部分)和任何错误消息的确切文本。复制并粘贴它们。
  • 我能够让它工作。问题是我在 Visual C++ Express 中添加了 x64 区域中的目录。我忘记了 Windows 7 现在的 Program Files 区域为 x64,而 x86 区域是我想包含在 Visual C++ Express 中的区域。谢谢,吉姆

标签: c++ postgresql visual-c++


【解决方案1】:

如果您正在使用 PostgreSQL 和 libpq,您可能还对 libpqtypeslibpqxx 感兴趣。第一个提供了从 libpq 访问数据值的极大简化,而后者提供了一个对 C++ 更友好的接口。

至于错误,很可能:

  • 如果在编译时或链接时失败,您的包含路径或链接库路径是错误的;或
  • 您的 PATH 不包括 libpq,如果它在运行时失败。

【讨论】:

    【解决方案2】:

    很可能(您没有提供任何实际错误消息)问题出在您的设置上。您需要添加正确的头文件(“include”)目录和库目录;如果您只是从一些教程中复制它们,请确保它们实际上指向这些文件(分别为 .h 和 .lib 文件)所在的真实位置。

    【讨论】:

    • 我认为他编译得很好。阅读他的问题后,他似乎遇到了运行时问题(即,如果他使用非静态库构建模型,他的程序可能没有支持 DLL 的路径。
    【解决方案3】:

    您需要使用 MSVC (nmake /f win32.mak all) 重新编译 libpq,之后,您需要将项目设置为使用该库,并将公共语言运行时支持更改为 (/clr) 而不是clr/纯。

    【讨论】:

    • 感谢您的建议!它确实有效。我使用的是 postgres 9.2,所以目录中有一些细微的变化,但我不需要重新编译 libq。 9.2 可能有一个用于 windowws 的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-30
    • 1970-01-01
    相关资源
    最近更新 更多