Skocz do zawartości

MySql i Visual Studio


Recommended Posts

Cześć wszystkim, O swoją drogą to fajnie, że coś ruszyła nasza scenka. Ale ja tutaj napiszę z bardzo poważnym problemem. O tóż mój problem dotyczy bardzo dobrego i niezawodnego narzędzia jakim jest Visual Studio 2008. No więc przechodząc do sedna sprawy mam taki problem ściągnąłem sobie mysql i do niego wszystkie potrzebne pliczki mysql.h etc. dodatkowo ściągnąłem libmysgl.def przekonwertowałem go na libmysgl.lib za pomocą liba napisałem krótką aplikację:

#include "mysql/mysql.h" #pragma comment(lib, "libmysql.lib"); ... MYSQL *sock; sock = mysql_init(NULL);

Program się ładnie kompiluje ale przy uruchomieniu wywala mi błąd, że nie może odnaleźć mysql_init@4, w LIBMYSQL.dll no fajnie zerknąłem sobie jak mam zdefiniowaną funkcję:

MYSQL * STDCALL mysql_init(MYSQL *mysql);

I lipa STDCALL powodóje dodanie upiększaczy w stylu @4 @8 etc. zalezy ile bajtów mają argumenty przekazywane do funkcji. Nie mogę użyć cdecl bo będę mieć kochany problem ze stosem i się aplikacja po drodze wykolei. Dodam, że pod dev cpp wszystko działa ok jeżeli dodasz -lmysql i nie masz żadnych problemów z upiększaczami. Wiem, że można usunąć @ grzebiąc w pliku ale potrzebuję żeby mi się ładnie program kompilował z nazwą jaką chce. Dodatkowo nie mogę zmienić nazw funkcji w dll ponieważ nie jestem jej twórcą a ona należy do Sun Microsystem więc ta droga odpada. Pozostaje jeszcze przez LoadLibrary i GetProcessAddress ale za dużo mam tych funkcji do użycia... Więc jeżeli ktoś ma jakieś pomysły to proszę pisać. Pozdrawiam mirz

Link do komentarza
Udostępnij na innych stronach

Siemka, Biblioteka jest napisana w C a program pisze w C++, extern "C" jest standardowo dodany do pliku mysql.h ale to i tak nic nie zmienia w Visualu uparcie dodaje tą swoją dekorację:

#ifdef __cplusplus extern "C" { #endif #ifndef _global_h /* If not standard header */ #include #ifdef __LCC__ #include /* For windows */

No cóż napiszę sobie metodę która będzie ładować adresy funkcji które będą mi potrzebne. Próbowałem użyć mysql++.h ale taki sam rezultat. OT - unicode mam wyłączony standardowo ustawiam na Multi-Byte... Pozdrawiam mirz

Link do komentarza
Udostępnij na innych stronach

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Gość
Odpowiedz...

×   Wkleiłeś zawartość bez formatowania.   Usuń formatowanie

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Utwórz nowe...