libpq und fehlende funktionsdefinitionen

Allgemeines zu PostgreSQL.
Antworten
jeckyll88
Neuer Benutzer
Beiträge: 1
Registriert: Fr 8. Jun 2018, 08:47

libpq und fehlende funktionsdefinitionen

Beitrag von jeckyll88 » Fr 8. Jun 2018, 08:58

Hallo liebe Forummitglieder...

ich bin dabei eine DLL in C++ als Erweiterung eines bestehenden Tools zu schreiben.
Mein eigentliches Problem ist das folgende, dass ich versuche aus der DLL heraus auf eine postgreSQL Datenbank zuzugreifen. Dafür nutze ich die bereits vorhandene libpq-Bibliothek. IDE ist Visual Studio 2017.

In den Properties habe ich folgenden Änderungen gemacht :

C/C++ -> Allgemein -> Zusätzliche Includeverzeichnisse : include-Ordner aus Installation
Linker -> Allgemein -> Zusätzliche Bibliotheksverzeichnisse : lib-Ordner aus Installation
Linker -> Eingabe -> Zusätzliche Abhängigkeit : lib/libpq.dll

Die includes von "libpq-fe.h" funktioniert auch soweit das ich die einzelnen Klassen wie etwa PGconn usw. verwenden kann, aber wenn ich beispielsweise PQconnectdb("") versuche aufzurufen funktioniert das ganze nicht mehr.

Wenn ich mal in die "libpq-fe.h" reinschaue sind da ja keine Definitionen der einzelnen Funktionen vorhanden und mir wird alles Grün unterstrichen das die Definitionen fehlen. Aus dem dazu gehörigen Kommentar folgere ich das die Definition in "fe-connect.c" stehen soll. Eine solche Datei existiert aber in meiner PG10 Installation nicht?! Ist da was bei der Installation falsch gelaufen oder was kann ich tun um das Problem zu beheben?

Ich bin über jede Hilfe dankbar!!!

pogomips
Benutzer
Beiträge: 73
Registriert: Fr 18. Nov 2016, 09:55

Re: libpq und fehlende funktionsdefinitionen

Beitrag von pogomips » Sa 9. Jun 2018, 12:00

Schau mal hier:
https://wiki.postgresql.org/wiki/Developer_FAQ

oder genauer hier:
https://wiki.postgresql.org/wiki/Develo ... op_code.3F

oder hier

Für Dich geht es ja erstmal nur um den Client, kann sein, dass es da "breitere" Möglichkeiten gibt. Den Du aber nicht weiterentwickeln, sondern nur nutzen willst. Eigentlich müsste ja ein installierter Client zugreifbar sein, ohne so tief einzutauchen.

In den Dokus oben, kannst Du Dir aber vielleicht abschauen, wie es dort gehandhabt wird.

Antworten