gpt4 book ai didi

c# - PostgreSQL C++ Api 收到错误 LNK1107 : invalid or corrupt file: cannot read at 0x2E8

转载 作者:行者123 更新时间:2023-11-29 14:21:31 30 4
gpt4 key购买 nike

我试试 libpqxxpg_bulkload用于我的简单 C# 应用程序中的 C++ 数据批量加载器。因为我电脑上的这两个库最终不支持。我现在,使用 native PostgreSQL libpq 方法新建简单的 DLL 项目。

CPPApp.h

#pragma once  

#ifdef CPPAPP_EXPORTS
#define CPPAPP_API __declspec(dllexport)
#else
#define CPPAPP_API __declspec(dllimport)
#endif

#include "libpq-fe.h"

extern CPPAPP_API PGconn* conn;

#ifdef __cplusplus
CPPAPP_API extern "C" {
#endif

void OpenDb(const char* connStr);

void CloseDb(void);

int getVersion(void);

#ifdef __cplusplus
}
#endif

CPPApp.cpp

 #include "stdafx.h"
#include "CPPApp.h"
#include <iostream>
using namespace std;

CPPAPP_API PGconn* conn = nullptr;

void OpenDb(const char* connStr)
{
conn = PQconnectdb(connStr);

if (PQstatus(conn) != CONNECTION_OK)
{
cout << "Connection to database failed." << endl;
CloseDb();
}

cout << "Connection to database - OK" << endl;

}

void CloseDb(void)
{
PQfinish(conn);
}

int getVersion(void)
{
int version = PQserverVersion(conn);

cout << "PostgreSQL version is " << version << endl;

return version;
}

错误:错误 LNK1107:无效或损坏的文件:无法在 0x2E8 处读取

我可以解决这个问题吗?

最佳答案

当您尝试链接 DLL(在本例中为 libpq.dll)而不是库(libpq.lib)时,通常会发生此错误。

假设您从 enterprisedb pre-compiled binaries 下载了 PostgreSQL for Windows ,安装目录下有一个lib目录,里面有libpq.lib。这是您要指示为 Visual Studio 项目的外部库的文件。

关于c# - PostgreSQL C++ Api 收到错误 LNK1107 : invalid or corrupt file: cannot read at 0x2E8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24222423/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com