Połączenie do bazy danych MySQL

0

Witam wszystkich.

Mam problem z połączeniem się z bazą danych w języku c++ z użyciem visual studio.
Mam:

  • 64 bitowy system
    Ale używam:
  • 32 bitowego connectora
  • 32 bitowego serwera MySQL
    Wszystko ładnie mi się zalinkowało itd ale przy uruchomieniu jest następujący błąd:
Microsoft Visual Studio C Runtime Library has detected a fatal error in WWWMon.exe.

Press Break to debug the program or Continue to terminate the program.

Mój kod:

#include<iostream>
#include<pcap.h>

#include "mysql_connection.h"
#include "mysql_driver.h"

#include <cppconn/driver.h>
#include <cppconn/exception.h>
#include <cppconn/resultset.h>
#include <cppconn/statement.h>

using namespace std;


int main() {

	cout << "Running 'SELECT 'Hello World!' AS _message'..." << endl;

	sql::mysql::MySQL_Driver *driver;
	sql::Connection *con;
	driver = sql::mysql::get_mysql_driver_instance();

	con = driver->connect("tcp://127.0.0.1:3306", "root", "");

	cout << endl << endl;
	system("PAUSE");
}

linijka która się wywala:

	con = driver->connect("tcp://127.0.0.1:3306", "root", "");

Szczerze mówiąc sam nie wiem gdzie może leżeć błąd. Nie wiem nawet jak szukać jego przyczyny. Przypuszczam, że coś z biblioteką libmysql.dll. Ale wersja raczej pasuje, bo też jest 32 bitowa. Proszę o rady...

0
#include <winsock2.h>

i podłącz jeszcze ws2_32.lib

0

Przepraszam bardzo, ale jaki to ma sens?
Po co dołączać plik nagłówkowy, gdy nie ma żadnych błędów związanych z brakiem czegoś przy kompilacji?

Dołączyłem i dalej to samo.

0

Faktycznie jak dołączasz pcap.h to tam już jest.
Jedyne co mi przychodzi do głowy to spróbuj przekopiować dll'kę do katalogu z plikiem exe.

0

przekopiowałem, bo bez tego wyrzucało błąd, że nie może jej znaleźć po uruchomieniu
jakieś inne pomysły?

0

Może są jeszcze inne zależności? Spróbuj zbadać sprawę przy pomocy Dependency Walker http://www.dependencywalker.com/

Hmm co mi jeszcze przyszło do głowy to możliwość, że jakaś dll'ka jest w innej wersji, czyli kompilujesz program z obsługą innej wersji a program ładuje inną(teoretyzuje).

0

Problem rozwiązany.
Hmmm, szczerze mówiąc, sam nie wiem co powodowało problem, założyłem projekt od nowa.

Użyłem:

  • Windows 7 x64
  • MySQL Server x64
  • Mysql C++ Connector x32
  • program kompilowany do x64
  • boost

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