Błędy Unresolved external

0

Witam !!

Mam problem z błędami typu Unresolved External.

Sprawa przedstawia się tak: mam do napisania funkcję do zmniejszania obrazków , która ma działać na
serwerze (po stronie serwera) PostgreSQL . Ma zmniejszać obrazki pod wpływem jakiegoś triggera.
Funkcję napisałem w C++ Builderze 6 (pełna wersja) , funkcja jako exec działa super..

Teraz żeby działała pod serwerem PG przerobiłem ją na projekt DLL typu C++. Builder tworzy dll , ale z kolei PostgreSQL nie znajduje w tym dll-u funkcji która tam jest!!!!!!
Zrobiłem więc projekt dll , zwykły "C". Przerobiłem funkcję nieco. Ale tym razem przy kompilacji pojawiają mi się błędy linkera:
Unresolved External: _pgwin32_fopen referended from .... //i tak dalej
Unresolved External: _pg_sprintfl referended from .... //i tak dalej

Bawiłem się już ustawieniami kompilatora "Generate Underscores" i Autodependency info" ale po wyłączeniu tych opcji nadal nie znajduje tych funkcji oraz w dodatku kilkudziesięciu innych .

Plik nagłówkowy który te funkcje deklaruje jest zaincludowany.
Więc co jest????? Jaka może być przyczyna ??
Help Postgresa informuje że funkcja serwera może być napisana w jęz C lub w jęz któy może być do C sprowadzony (czyli myślę że C++ też) .

Błagam pomóżcie bo z tym tematem męczę się już od 2 miesięcy i nigdzie na necie nie ma odp.

0

przyrostki PG przy nazwach nietrafionych importow, sugeruja ze zapomniales do projektu dolaczyc jakiegos .lib'a przychodzacego z postgresem..

0

W katalogu PostgreSQL (i podkatalogach) znalazłem tylko 2 liby:
libpq.lib i libecpg.lib

Dodałem je do projektu , ale przy kompilacji wyskoczył mi błąd:
Invalid OMF record type 0x21 (possibly COFF) przy obu bibliotekach.
Znalazłem na 4programmmers że trzeba te biblioteki przekonwertować poprzez coff2omf.exe i tak też zrobiłem i dodałem oczywiscie nowe pliki do projektu.
Ale jak nie znajdywał tamtych funkcji (_pgwin32fopen itd) - tak nie znajduje...:(

0

Czemu moderatorze wrzuciłeś ten temat do kategorii Newbie??
Przecież zastosowałem propozycję Quetzactoatla i nadal nie działa.
Nie znalazłem tutaj na forum podobnego tematu z postgresem......

0

przerzucilem od razu ten watek do dzialu newbie, poniewaz uznalem to jest standardowy problem z konfiguracja srodowiska/doborem libow, czyli cos z czym ludzie ciaaagleeee i do znudzenia maja problemy... z tego co potem napisales, rzeczywiscie do newbie raczej nie nalezysz ... ale ja tylko moderuje dzial C/C++, z newbie przeniesc juz nie moge :)

sprawdz czy ta biblioteka od postgresa nie ma jakis 'dependencies'.. caly czas wydaje mi sie ze po porstu brakuje Ci jakiejs biblioteki.. mozliwe ze tworcy wylaczyli czesc wspolnego kodu do jakiejs jednej wspoldzielonej biblioteki.. nazwy funkcji ktorych nie moze znalezc pasuja do tego schematu jak ulal - fopen, sprintf.. to zupelnie wyglada jak jakas 'nakladka' na stdlibc, pewnie ujednolicajaca roznice pomiedzy OS'ami..

jest jeszcze jedna mozliwosc - niespojne #define'y. mozliwe ze gdzies masz ustawiony zestaw define'o w ktory powoduje wygenerowanie np.
#define prinft pg_printf
ale w innym miejscu uaktywania sie
#define prinft _printf
etc..

imho, najpierw czeka Cie przegrepowanie sie przez wszsytkie .h i .cpp w poszukiwaniu pg_sprintfl (itp) i przeanalizowanie co tak na prawde ich uzywa i dzieki czemu uzywa akurat ich a nie zwyklych sprintf (itp)

0

Kurcze .. syzyfowa praca. Jestem w toku sprawdzania...
Dzięki za radę - nie myśl że jestem niewdzięczny.

0

no.. niestetty:/ ale jak przebrniesz dokladnie przez takie jdeno tylko _pg_fopen na przyklad, to sie powinno wyjasnic wszystko

1 użytkowników online, w tym zalogowanych: 0, gości: 1