C++ MySQL-Verbindung aufbauen
-
Hallo,
ich versuche jetzt seit mehreren Tagen eine MySQL-Verbindung aufzubauen über Visual C++. Leider ist dieses schon mehrmals fehlgeschlagen. Es kommen mehrere Fehlermeldungen.
Mit diesem Tutorial versuche ich die Verbindung aufzubauen, die benutze MySQL-Version ist 5.1 . http://c3r0.de/2008/07/26/mysql_vs_project_cpp/
// MySql.cpp: Hauptprojektdatei. #pragma comment (lib,"mysqlclient") #pragma comment (lib,"wsock32") #include "stdafx.h" #include <winsock.h> #include <my_global.h> #include <mysql.h> using namespace System; int main(array<System::String ^> ^args) { MYSQL *conn; MYSQL_RES *res; MYSQL_ROW row; char *server = "127.0.0.1"; char *user = "root"; char *password = "++++"; char *database = "test"; char query[] = "SHOW VARIABLES"; /* init mysql */ conn = mysql_init(NULL); /* connect to database */ if ( mysql_real_connect(conn, server, user, password, database, 0, NULL, 0) ) { /* execute query mysql_query gibt 0 zurück wenn alles ok ist */ if ( !mysql_query(conn, query)) { /* Result abholen */ res = mysql_store_result(conn); /* Result durchlaufen */ while ((row = mysql_fetch_row(res)) != NULL) { OutputDebugStringA(row[0]); OutputDebugStringA("="); OutputDebugStringA(row[1]); OutputDebugStringA("\n"); } /* Result wieder freigeben */ mysql_free_result(res); } else { OutputDebugStringA("Query failed! "); OutputDebugStringA(mysql_error(conn)); OutputDebugStringA("\n"); } } else { OutputDebugStringA("Connection failed! "); OutputDebugStringA(mysql_error(conn)); OutputDebugStringA("\n"); } /* close connection */ mysql_close(conn); }
Diese Fehlermeldungen kommen beim Debuggen:
1>------ Erstellen gestartet: Projekt: MySql, Konfiguration: Debug Win32 ------ 1> MySql.cpp 1>C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\ws2def.h(91): warning C4005: 'AF_IPX': Makro-Neudefinition 1> C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winsock.h(460): Siehe vorherige Definition von 'AF_IPX' 1>C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\ws2def.h(131): warning C4005: 'AF_MAX': Makro-Neudefinition 1> C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winsock.h(479): Siehe vorherige Definition von 'AF_MAX' 1>C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\ws2def.h(168): warning C4005: 'SO_DONTLINGER': Makro-Neudefinition 1> C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winsock.h(402): Siehe vorherige Definition von 'SO_DONTLINGER' 1>C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\ws2def.h(212): error C2011: 'sockaddr': 'struct' Typneudefinition 1> C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winsock.h(485): Siehe Deklaration von 'sockaddr' 1>C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\ws2def.h(390): error C2059: Syntaxfehler: 'Konstante' 1>C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\ws2def.h(390): error C3805: 'Konstante': unerwartetes Token, es wurde entweder '}' oder ein ',' erwartet 1>C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\ws2def.h(524): warning C4005: 'IN_CLASSA': Makro-Neudefinition 1> C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winsock.h(287): Siehe vorherige Definition von 'IN_CLASSA' 1>C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\ws2def.h(530): warning C4005: 'IN_CLASSB': Makro-Neudefinition 1> C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winsock.h(293): Siehe vorherige Definition von 'IN_CLASSB' 1>C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\ws2def.h(536): warning C4005: 'IN_CLASSC': Makro-Neudefinition 1> C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winsock.h(299): Siehe vorherige Definition von 'IN_CLASSC' 1>C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\ws2def.h(547): warning C4005: 'INADDR_ANY': Makro-Neudefinition 1> C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winsock.h(304): Siehe vorherige Definition von 'INADDR_ANY' 1>C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\ws2def.h(549): warning C4005: 'INADDR_BROADCAST': Makro-Neudefinition 1> C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winsock.h(306): Siehe vorherige Definition von 'INADDR_BROADCAST' 1>C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\ws2def.h(583): error C2011: 'sockaddr_in': 'struct' Typneudefinition 1> C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winsock.h(312): Siehe Deklaration von 'sockaddr_in' 1>C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winsock2.h(132): error C2011: 'fd_set': 'struct' Typneudefinition 1> C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winsock.h(68): Siehe Deklaration von 'fd_set' 1>C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winsock2.h(167): warning C4005: 'FD_SET': Makro-Neudefinition 1> C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winsock.h(102): Siehe vorherige Definition von 'FD_SET' 1>C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winsock2.h(176): error C2011: 'timeval': 'struct' Typneudefinition 1> C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winsock.h(111): Siehe Deklaration von 'timeval' 1>C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winsock2.h(232): error C2011: 'hostent': 'struct' Typneudefinition 1> C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winsock.h(167): Siehe Deklaration von 'hostent' 1>C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winsock2.h(245): error C2011: 'netent': 'struct' Typneudefinition 1> C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winsock.h(180): Siehe Deklaration von 'netent' 1>C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winsock2.h(252): error C2011: 'servent': 'struct' Typneudefinition 1> C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winsock.h(187): Siehe Deklaration von 'servent' 1>C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winsock2.h(264): error C2011: 'protoent': 'struct' Typneudefinition 1> C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winsock.h(199): Siehe Deklaration von 'protoent' 1>C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winsock2.h(360): error C2011: 'WSAData': 'struct' Typneudefinition 1> C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winsock.h(322): Siehe Deklaration von 'WSAData' 1>C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winsock2.h(458): error C2011: 'sockproto': 'struct' Typneudefinition 1> C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winsock.h(494): Siehe Deklaration von 'sockproto' 1>C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winsock2.h(500): error C2011: 'linger': 'struct' Typneudefinition 1> C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winsock.h(531): Siehe Deklaration von 'linger' 1>C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winsock2.h(513): warning C4005: 'SOMAXCONN': Makro-Neudefinition 1> C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winsock.h(544): Siehe vorherige Definition von 'SOMAXCONN' 1>C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winsock2.h(542): warning C4005: 'FD_READ': Makro-Neudefinition 1> C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winsock.h(562): Siehe vorherige Definition von 'FD_READ' 1>C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winsock2.h(545): warning C4005: 'FD_WRITE': Makro-Neudefinition 1> C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winsock.h(563): Siehe vorherige Definition von 'FD_WRITE' 1>C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winsock2.h(548): warning C4005: 'FD_OOB': Makro-Neudefinition 1> C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winsock.h(564): Siehe vorherige Definition von 'FD_OOB' 1>C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winsock2.h(551): warning C4005: 'FD_ACCEPT': Makro-Neudefinition 1> C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winsock.h(565): Siehe vorherige Definition von 'FD_ACCEPT' 1>C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winsock2.h(554): warning C4005: 'FD_CONNECT': Makro-Neudefinition 1> C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winsock.h(566): Siehe vorherige Definition von 'FD_CONNECT' 1>C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winsock2.h(557): warning C4005: 'FD_CLOSE': Makro-Neudefinition 1> C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winsock.h(567): Siehe vorherige Definition von 'FD_CLOSE' 1>C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winsock2.h(1578): error C2375: 'accept': Neudefinition; unterschiedliche Bindung 1> C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winsock.h(742): Siehe Deklaration von 'accept' 1>C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winsock2.h(1600): error C2375: 'bind': Neudefinition; unterschiedliche Bindung 1> C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winsock.h(747): Siehe Deklaration von 'bind' 1>C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winsock2.h(1619): error C2375: 'closesocket': Neudefinition; unterschiedliche Bindung 1> C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winsock.h(752): Siehe Deklaration von 'closesocket' 1>C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winsock2.h(1638): error C2375: 'connect': Neudefinition; unterschiedliche Bindung 1> C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winsock.h(754): Siehe Deklaration von 'connect' 1>C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winsock2.h(1659): error C2375: 'ioctlsocket': Neudefinition; unterschiedliche Bindung 1> C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winsock.h(759): Siehe Deklaration von 'ioctlsocket' 1>C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winsock2.h(1680): error C2375: 'getpeername': Neudefinition; unterschiedliche Bindung 1> C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winsock.h(764): Siehe Deklaration von 'getpeername' 1>C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winsock2.h(1701): error C2375: 'getsockname': Neudefinition; unterschiedliche Bindung 1> C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winsock.h(769): Siehe Deklaration von 'getsockname' 1>C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winsock2.h(1724): error C2375: 'getsockopt': Neudefinition; unterschiedliche Bindung 1> C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winsock.h(774): Siehe Deklaration von 'getsockopt' 1>C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winsock2.h(1745): error C2375: 'htonl': Neudefinition; unterschiedliche Bindung 1> C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winsock.h(781): Siehe Deklaration von 'htonl' 1>C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winsock2.h(1762): error C2375: 'htons': Neudefinition; unterschiedliche Bindung 1> C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winsock.h(783): Siehe Deklaration von 'htons' 1>C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winsock2.h(1780): error C2375: 'inet_addr': Neudefinition; unterschiedliche Bindung 1> C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winsock.h(785): Siehe Deklaration von 'inet_addr' 1>C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winsock2.h(1797): error C2375: 'inet_ntoa': Neudefinition; unterschiedliche Bindung 1> C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winsock.h(787): Siehe Deklaration von 'inet_ntoa' 1>C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winsock2.h(1815): error C2375: 'listen': Neudefinition; unterschiedliche Bindung 1> C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winsock.h(789): Siehe Deklaration von 'listen' 1>C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winsock2.h(1833): error C2375: 'ntohl': Neudefinition; unterschiedliche Bindung 1> C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winsock.h(793): Siehe Deklaration von 'ntohl' 1>C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winsock2.h(1850): error C2375: 'ntohs': Neudefinition; unterschiedliche Bindung 1> C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winsock.h(795): Siehe Deklaration von 'ntohs' 1>C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winsock2.h(1870): error C2375: 'recv': Neudefinition; unterschiedliche Bindung 1> C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winsock.h(797): Siehe Deklaration von 'recv' 1>C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winsock2.h(1895): error C2375: 'recvfrom': Neudefinition; unterschiedliche Bindung 1> C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winsock.h(803): Siehe Deklaration von 'recvfrom' 1>C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winsock2.h(1921): error C2375: 'select': Neudefinition; unterschiedliche Bindung 1> C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winsock.h(811): Siehe Deklaration von 'select' 1>C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winsock2.h(1945): error C2375: 'send': Neudefinition; unterschiedliche Bindung 1> C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winsock.h(818): Siehe Deklaration von 'send' 1>C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winsock2.h(1970): error C2375: 'sendto': Neudefinition; unterschiedliche Bindung 1> C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winsock.h(824): Siehe Deklaration von 'sendto' 1>C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winsock2.h(1996): error C2375: 'setsockopt': Neudefinition; unterschiedliche Bindung 1> C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winsock.h(832): Siehe Deklaration von 'setsockopt' 1>C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winsock2.h(2018): error C2375: 'shutdown': Neudefinition; unterschiedliche Bindung 1> C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winsock.h(839): Siehe Deklaration von 'shutdown' 1>C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winsock2.h(2039): error C2375: 'socket': Neudefinition; unterschiedliche Bindung 1> C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winsock.h(843): Siehe Deklaration von 'socket' 1>C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winsock2.h(2063): error C2375: 'gethostbyaddr': Neudefinition; unterschiedliche Bindung 1> C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winsock.h(850): Siehe Deklaration von 'gethostbyaddr' 1>C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winsock2.h(2083): error C2375: 'gethostbyname': Neudefinition; unterschiedliche Bindung 1> C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winsock.h(855): Siehe Deklaration von 'gethostbyname' 1>C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winsock2.h(2101): error C2375: 'gethostname': Neudefinition; unterschiedliche Bindung 1> C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winsock.h(857): Siehe Deklaration von 'gethostname' 1>C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winsock2.h(2121): error C2375: 'getservbyport': Neudefinition; unterschiedliche Bindung 1> C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winsock.h(861): Siehe Deklaration von 'getservbyport' 1>C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winsock2.h(2141): error C2375: 'getservbyname': Neudefinition; unterschiedliche Bindung 1> C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winsock.h(865): Siehe Deklaration von 'getservbyname' 1>C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winsock2.h(2160): error C2375: 'getprotobynumber': Neudefinition; unterschiedliche Bindung 1> C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winsock.h(869): Siehe Deklaration von 'getprotobynumber' 1>C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winsock2.h(2178): error C2375: 'getprotobyname': Neudefinition; unterschiedliche Bindung 1> C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winsock.h(871): Siehe Deklaration von 'getprotobyname' 1>C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winsock2.h(2200): error C2375: 'WSAStartup': Neudefinition; unterschiedliche Bindung 1> C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winsock.h(875): Siehe Deklaration von 'WSAStartup' 1>C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winsock2.h(2219): error C2375: 'WSACleanup': Neudefinition; unterschiedliche Bindung 1> C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winsock.h(879): Siehe Deklaration von 'WSACleanup' 1>C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winsock2.h(2236): error C2375: 'WSASetLastError': Neudefinition; unterschiedliche Bindung 1> C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winsock.h(881): Siehe Deklaration von 'WSASetLastError' 1>C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winsock2.h(2253): error C2375: 'WSAGetLastError': Neudefinition; unterschiedliche Bindung 1> C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winsock.h(883): Siehe Deklaration von 'WSAGetLastError' 1>C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winsock2.h(2270): error C2375: 'WSAIsBlocking': Neudefinition; unterschiedliche Bindung 1> C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winsock.h(885): Siehe Deklaration von 'WSAIsBlocking' 1>C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winsock2.h(2287): error C2375: 'WSAUnhookBlockingHook': Neudefinition; unterschiedliche Bindung 1> C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winsock.h(887): Siehe Deklaration von 'WSAUnhookBlockingHook' 1>C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winsock2.h(2304): error C2375: 'WSASetBlockingHook': Neudefinition; unterschiedliche Bindung 1> C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winsock.h(889): Siehe Deklaration von 'WSASetBlockingHook' 1>C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winsock2.h(2321): error C2375: 'WSACancelBlockingCall': Neudefinition; unterschiedliche Bindung 1> C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winsock.h(891): Siehe Deklaration von 'WSACancelBlockingCall' 1>C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winsock2.h(2343): error C2375: 'WSAAsyncGetServByName': Neudefinition; unterschiedliche Bindung 1> C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winsock.h(893): Siehe Deklaration von 'WSAAsyncGetServByName' 1>C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winsock2.h(2370): error C2375: 'WSAAsyncGetServByPort': Neudefinition; unterschiedliche Bindung 1> C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winsock.h(901): Siehe Deklaration von 'WSAAsyncGetServByPort' 1>C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winsock2.h(2396): error C2375: 'WSAAsyncGetProtoByName': Neudefinition; unterschiedliche Bindung 1> C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winsock.h(909): Siehe Deklaration von 'WSAAsyncGetProtoByName' 1>C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winsock2.h(2421): error C2375: 'WSAAsyncGetProtoByNumber': Neudefinition; unterschiedliche Bindung 1> C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winsock.h(916): Siehe Deklaration von 'WSAAsyncGetProtoByNumber' 1>C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winsock2.h(2446): error C2375: 'WSAAsyncGetHostByName': Neudefinition; unterschiedliche Bindung 1> C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winsock.h(923): Siehe Deklaration von 'WSAAsyncGetHostByName' 1>C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winsock2.h(2473): error C2375: 'WSAAsyncGetHostByAddr': Neudefinition; unterschiedliche Bindung 1> C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winsock.h(930): Siehe Deklaration von 'WSAAsyncGetHostByAddr' 1>C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winsock2.h(2496): error C2375: 'WSACancelAsyncRequest': Neudefinition; unterschiedliche Bindung 1> C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winsock.h(939): Siehe Deklaration von 'WSACancelAsyncRequest' 1>C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winsock2.h(2517): error C2375: 'WSAAsyncSelect': Neudefinition; unterschiedliche Bindung 1> C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winsock.h(941): Siehe Deklaration von 'WSAAsyncSelect' ========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========
Leider finde ich den Fehler nicht.
Danke für die Hilfe schon mal im Vorraus.LG Niklas
-
mehrfachinclude, vermutlich... durch die windows.h in der stdafx.h.
nimm die mal raus (brauchst du sowieso nicht), wenn der compiler schimpft, lege nocheinmal ein konsolenprojekt an ohne stdafx.ps: eventuell reicht ein umstellen
#include <winsock.h> .... .... #include "stdafx.h"
-
@elise
Danke für die schnelle Antwort. Leider bringen beide möglichkeiten keine änderung der Fehlermeldung.Somit bleibt das Problem bestehen
-
irgendwo scheint noch eine windows.h includiert zu werden.
in my_global.h wird auch die windows.h includiert, also auch hier mal umstellen.
schau mal nach, ob in my_global.h auch die winsock.h mit drin ist...http://dev.mysql.com/doc/refman/5.1/de/windows-client-compiling.html
-
@elise
Jetzt sind die Fehlermeldungen einglück weg.
Aber wie meistens kommen gleich neue1>------ Erstellen gestartet: Projekt: MySQL, Konfiguration: Debug Win32 ------ 1> MySQL.cpp 1>MySQL.obj : error LNK2028: Nicht aufgelöstes Token (0A00005B) ""extern "C" void __stdcall mysql_close(struct st_mysql *)" (?mysql_close@@$$J14YGXPAUst_mysql@@@Z)", auf das in Funktion ""int __clrcall main(cli::array<class System::String ^ >^)" (?main@@$$HYMHP$01AP$AAVString@System@@@Z)" verwiesen wird. 1>MySQL.obj : error LNK2028: Nicht aufgelöstes Token (0A00005C) ""extern "C" char const * __stdcall mysql_error(struct st_mysql *)" (?mysql_error@@$$J14YGPBDPAUst_mysql@@@Z)", auf das in Funktion ""int __clrcall main(cli::array<class System::String ^ >^)" (?main@@$$HYMHP$01AP$AAVString@System@@@Z)" verwiesen wird. 1>MySQL.obj : error LNK2028: Nicht aufgelöstes Token (0A00005D) ""extern "C" void __stdcall mysql_free_result(struct st_mysql_res *)" (?mysql_free_result@@$$J14YGXPAUst_mysql_res@@@Z)", auf das in Funktion ""int __clrcall main(cli::array<class System::String ^ >^)" (?main@@$$HYMHP$01AP$AAVString@System@@@Z)" verwiesen wird. 1>MySQL.obj : error LNK2028: Nicht aufgelöstes Token (0A00005F) ""extern "C" char * * __stdcall mysql_fetch_row(struct st_mysql_res *)" (?mysql_fetch_row@@$$J14YGPAPADPAUst_mysql_res@@@Z)", auf das in Funktion ""int __clrcall main(cli::array<class System::String ^ >^)" (?main@@$$HYMHP$01AP$AAVString@System@@@Z)" verwiesen wird. 1>MySQL.obj : error LNK2028: Nicht aufgelöstes Token (0A000060) ""extern "C" struct st_mysql_res * __stdcall mysql_store_result(struct st_mysql *)" (?mysql_store_result@@$$J14YGPAUst_mysql_res@@PAUst_mysql@@@Z)", auf das in Funktion ""int __clrcall main(cli::array<class System::String ^ >^)" (?main@@$$HYMHP$01AP$AAVString@System@@@Z)" verwiesen wird. 1>MySQL.obj : error LNK2028: Nicht aufgelöstes Token (0A000061) ""extern "C" int __stdcall mysql_query(struct st_mysql *,char const *)" (?mysql_query@@$$J18YGHPAUst_mysql@@PBD@Z)", auf das in Funktion ""int __clrcall main(cli::array<class System::String ^ >^)" (?main@@$$HYMHP$01AP$AAVString@System@@@Z)" verwiesen wird. 1>MySQL.obj : error LNK2028: Nicht aufgelöstes Token (0A000062) ""extern "C" struct st_mysql * __stdcall mysql_real_connect(struct st_mysql *,char const *,char const *,char const *,char const *,unsigned int,char const *,unsigned long)" (?mysql_real_connect@@$$J232YGPAUst_mysql@@PAU1@PBD111I1K@Z)", auf das in Funktion ""int __clrcall main(cli::array<class System::String ^ >^)" (?main@@$$HYMHP$01AP$AAVString@System@@@Z)" verwiesen wird. 1>MySQL.obj : error LNK2028: Nicht aufgelöstes Token (0A000063) ""extern "C" struct st_mysql * __stdcall mysql_init(struct st_mysql *)" (?mysql_init@@$$J14YGPAUst_mysql@@PAU1@@Z)", auf das in Funktion ""int __clrcall main(cli::array<class System::String ^ >^)" (?main@@$$HYMHP$01AP$AAVString@System@@@Z)" verwiesen wird. 1>MySQL.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""extern "C" void __stdcall mysql_close(struct st_mysql *)" (?mysql_close@@$$J14YGXPAUst_mysql@@@Z)" in Funktion ""int __clrcall main(cli::array<class System::String ^ >^)" (?main@@$$HYMHP$01AP$AAVString@System@@@Z)". 1>MySQL.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""extern "C" char const * __stdcall mysql_error(struct st_mysql *)" (?mysql_error@@$$J14YGPBDPAUst_mysql@@@Z)" in Funktion ""int __clrcall main(cli::array<class System::String ^ >^)" (?main@@$$HYMHP$01AP$AAVString@System@@@Z)". 1>MySQL.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""extern "C" void __stdcall mysql_free_result(struct st_mysql_res *)" (?mysql_free_result@@$$J14YGXPAUst_mysql_res@@@Z)" in Funktion ""int __clrcall main(cli::array<class System::String ^ >^)" (?main@@$$HYMHP$01AP$AAVString@System@@@Z)". 1>MySQL.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""extern "C" char * * __stdcall mysql_fetch_row(struct st_mysql_res *)" (?mysql_fetch_row@@$$J14YGPAPADPAUst_mysql_res@@@Z)" in Funktion ""int __clrcall main(cli::array<class System::String ^ >^)" (?main@@$$HYMHP$01AP$AAVString@System@@@Z)". 1>MySQL.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""extern "C" struct st_mysql_res * __stdcall mysql_store_result(struct st_mysql *)" (?mysql_store_result@@$$J14YGPAUst_mysql_res@@PAUst_mysql@@@Z)" in Funktion ""int __clrcall main(cli::array<class System::String ^ >^)" (?main@@$$HYMHP$01AP$AAVString@System@@@Z)". 1>MySQL.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""extern "C" int __stdcall mysql_query(struct st_mysql *,char const *)" (?mysql_query@@$$J18YGHPAUst_mysql@@PBD@Z)" in Funktion ""int __clrcall main(cli::array<class System::String ^ >^)" (?main@@$$HYMHP$01AP$AAVString@System@@@Z)". 1>MySQL.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""extern "C" struct st_mysql * __stdcall mysql_real_connect(struct st_mysql *,char const *,char const *,char const *,char const *,unsigned int,char const *,unsigned long)" (?mysql_real_connect@@$$J232YGPAUst_mysql@@PAU1@PBD111I1K@Z)" in Funktion ""int __clrcall main(cli::array<class System::String ^ >^)" (?main@@$$HYMHP$01AP$AAVString@System@@@Z)". 1>MySQL.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""extern "C" struct st_mysql * __stdcall mysql_init(struct st_mysql *)" (?mysql_init@@$$J14YGPAUst_mysql@@PAU1@@Z)" in Funktion ""int __clrcall main(cli::array<class System::String ^ >^)" (?main@@$$HYMHP$01AP$AAVString@System@@@Z)". 1>D:\Visual Studio 2010\Projects\MySQL\Debug\MySQL.exe : fatal error LNK1120: 16 nicht aufgelöste externe Verweise. ========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========
Ich hoffe dafür gibt es auch eine Lösung
Aber danke schon mal für die erste HilfeLG Niklas
-
Jetzt musst Du noch die *.lib von MySQL dazulinken.
-
@theta
Danke für die schnelle Antwort.
Welche *.lib wird denn noch gelinkt?LG Niklas
-
Hallo Niklasg,
hast du denn den Pfad zu der Lib-Datei auch richtig unter "Zusätzliche Bibiotheksverzeichnisse" eingetragen (unter Punkt 2 im Artikel - wobei der Text bei meinem Browser rechts vom Bild steht, also die Formatierung nicht so ganz stimmt ;-)?
-
ja das habe ich auch gemacht. Für mich sieht die Fehlermeldung aus als ob er was von C benutzen will was aber unter C++ nicht läuft?
Hier ist noch mal der aktuelle Code:
// MySql.cpp: Hauptprojektdatei. #pragma comment (lib,"mysqlclient.lib") #pragma comment (lib,"wsock32")< #include "stdafx.h" #include <my_global.h> #include <mysql.h> using namespace System; int main(array<System::String ^> ^args) { MYSQL *conn; MYSQL_RES *res; MYSQL_ROW row; char *server = "127.0.0.1"; char *user = "root"; char *password = "++++"; char *database = "matthias_ml-bkf"; char query[] = "SHOW VARIABLES"; /* init mysql */ conn = mysql_init(NULL); /* connect to database */ if ( mysql_real_connect(conn, server, user, password, database, 0, NULL, 0) ) { /* execute query mysql_query gibt 0 zurück wenn alles ok ist */ if ( !mysql_query(conn, query)) { /* Result abholen */ res = mysql_store_result(conn); /* Result durchlaufen */ while ((row = mysql_fetch_row(res)) != NULL) { OutputDebugStringA(row[0]); OutputDebugStringA("="); OutputDebugStringA(row[1]); OutputDebugStringA("\n"); } /* Result wieder freigeben */ mysql_free_result(res); } else { OutputDebugStringA("Query failed! "); OutputDebugStringA(mysql_error(conn)); OutputDebugStringA("\n"); } } else { OutputDebugStringA("Connection failed! "); OutputDebugStringA(mysql_error(conn)); OutputDebugStringA("\n"); } /* close connection */ mysql_close(conn); }
-
Die Winsock2 Library heisst: ws2_32.lib
Der Header heisst winsock2.hEDIT:
Mein Kommentar tut wohl nichts zur Sache...
-
@theta
Ja leider bringt mich das nicht weiterKann mir vielleicht jemand ein Tutorial empfhelen das das Thema MySQL behandelt? Oder hat jemand einen Skript der Funktioniert muss ja nciht unbedingt der sein?
LG Niklas
-
-
Die frage wurde von mir schon mehrmals gestellt ^^
-
theta schrieb:
Die Winsock2 Library heisst: ws2_32.lib
Der Header heisst winsock2.hGegen
ws2_32.lib
hast also gelinkt? Fehlermeldungen aktuell?
-
Die aktuellen Fehlermeldungen:
1>------ Erstellen gestartet: Projekt: MySql2, Konfiguration: Debug Win32 ------ 1> MySql2.cpp 1>MySql2.obj : error LNK2028: Nicht aufgelöstes Token (0A00005B) ""extern "C" void __stdcall mysql_close(struct st_mysql *)" (?mysql_close@@$$J14YGXPAUst_mysql@@@Z)", auf das in Funktion ""int __clrcall main(cli::array<class System::String ^ >^)" (?main@@$$HYMHP$01AP$AAVString@System@@@Z)" verwiesen wird. 1>MySql2.obj : error LNK2028: Nicht aufgelöstes Token (0A00005C) ""extern "C" char const * __stdcall mysql_error(struct st_mysql *)" (?mysql_error@@$$J14YGPBDPAUst_mysql@@@Z)", auf das in Funktion ""int __clrcall main(cli::array<class System::String ^ >^)" (?main@@$$HYMHP$01AP$AAVString@System@@@Z)" verwiesen wird. 1>MySql2.obj : error LNK2028: Nicht aufgelöstes Token (0A00005D) ""extern "C" void __stdcall mysql_free_result(struct st_mysql_res *)" (?mysql_free_result@@$$J14YGXPAUst_mysql_res@@@Z)", auf das in Funktion ""int __clrcall main(cli::array<class System::String ^ >^)" (?main@@$$HYMHP$01AP$AAVString@System@@@Z)" verwiesen wird. 1>MySql2.obj : error LNK2028: Nicht aufgelöstes Token (0A00005F) ""extern "C" char * * __stdcall mysql_fetch_row(struct st_mysql_res *)" (?mysql_fetch_row@@$$J14YGPAPADPAUst_mysql_res@@@Z)", auf das in Funktion ""int __clrcall main(cli::array<class System::String ^ >^)" (?main@@$$HYMHP$01AP$AAVString@System@@@Z)" verwiesen wird. 1>MySql2.obj : error LNK2028: Nicht aufgelöstes Token (0A000060) ""extern "C" struct st_mysql_res * __stdcall mysql_store_result(struct st_mysql *)" (?mysql_store_result@@$$J14YGPAUst_mysql_res@@PAUst_mysql@@@Z)", auf das in Funktion ""int __clrcall main(cli::array<class System::String ^ >^)" (?main@@$$HYMHP$01AP$AAVString@System@@@Z)" verwiesen wird. 1>MySql2.obj : error LNK2028: Nicht aufgelöstes Token (0A000061) ""extern "C" int __stdcall mysql_query(struct st_mysql *,char const *)" (?mysql_query@@$$J18YGHPAUst_mysql@@PBD@Z)", auf das in Funktion ""int __clrcall main(cli::array<class System::String ^ >^)" (?main@@$$HYMHP$01AP$AAVString@System@@@Z)" verwiesen wird. 1>MySql2.obj : error LNK2028: Nicht aufgelöstes Token (0A000062) ""extern "C" struct st_mysql * __stdcall mysql_real_connect(struct st_mysql *,char const *,char const *,char const *,char const *,unsigned int,char const *,unsigned long)" (?mysql_real_connect@@$$J232YGPAUst_mysql@@PAU1@PBD111I1K@Z)", auf das in Funktion ""int __clrcall main(cli::array<class System::String ^ >^)" (?main@@$$HYMHP$01AP$AAVString@System@@@Z)" verwiesen wird. 1>MySql2.obj : error LNK2028: Nicht aufgelöstes Token (0A000063) ""extern "C" struct st_mysql * __stdcall mysql_init(struct st_mysql *)" (?mysql_init@@$$J14YGPAUst_mysql@@PAU1@@Z)", auf das in Funktion ""int __clrcall main(cli::array<class System::String ^ >^)" (?main@@$$HYMHP$01AP$AAVString@System@@@Z)" verwiesen wird. 1>MySql2.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""extern "C" void __stdcall mysql_close(struct st_mysql *)" (?mysql_close@@$$J14YGXPAUst_mysql@@@Z)" in Funktion ""int __clrcall main(cli::array<class System::String ^ >^)" (?main@@$$HYMHP$01AP$AAVString@System@@@Z)". 1>MySql2.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""extern "C" char const * __stdcall mysql_error(struct st_mysql *)" (?mysql_error@@$$J14YGPBDPAUst_mysql@@@Z)" in Funktion ""int __clrcall main(cli::array<class System::String ^ >^)" (?main@@$$HYMHP$01AP$AAVString@System@@@Z)". 1>MySql2.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""extern "C" void __stdcall mysql_free_result(struct st_mysql_res *)" (?mysql_free_result@@$$J14YGXPAUst_mysql_res@@@Z)" in Funktion ""int __clrcall main(cli::array<class System::String ^ >^)" (?main@@$$HYMHP$01AP$AAVString@System@@@Z)". 1>MySql2.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""extern "C" char * * __stdcall mysql_fetch_row(struct st_mysql_res *)" (?mysql_fetch_row@@$$J14YGPAPADPAUst_mysql_res@@@Z)" in Funktion ""int __clrcall main(cli::array<class System::String ^ >^)" (?main@@$$HYMHP$01AP$AAVString@System@@@Z)". 1>MySql2.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""extern "C" struct st_mysql_res * __stdcall mysql_store_result(struct st_mysql *)" (?mysql_store_result@@$$J14YGPAUst_mysql_res@@PAUst_mysql@@@Z)" in Funktion ""int __clrcall main(cli::array<class System::String ^ >^)" (?main@@$$HYMHP$01AP$AAVString@System@@@Z)". 1>MySql2.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""extern "C" int __stdcall mysql_query(struct st_mysql *,char const *)" (?mysql_query@@$$J18YGHPAUst_mysql@@PBD@Z)" in Funktion ""int __clrcall main(cli::array<class System::String ^ >^)" (?main@@$$HYMHP$01AP$AAVString@System@@@Z)". 1>MySql2.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""extern "C" struct st_mysql * __stdcall mysql_real_connect(struct st_mysql *,char const *,char const *,char const *,char const *,unsigned int,char const *,unsigned long)" (?mysql_real_connect@@$$J232YGPAUst_mysql@@PAU1@PBD111I1K@Z)" in Funktion ""int __clrcall main(cli::array<class System::String ^ >^)" (?main@@$$HYMHP$01AP$AAVString@System@@@Z)". 1>MySql2.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""extern "C" struct st_mysql * __stdcall mysql_init(struct st_mysql *)" (?mysql_init@@$$J14YGPAUst_mysql@@PAU1@@Z)" in Funktion ""int __clrcall main(cli::array<class System::String ^ >^)" (?main@@$$HYMHP$01AP$AAVString@System@@@Z)". 1>D:\Visual Studio 2010\Projects\Test\MySql2\Debug\MySql2.exe : fatal error LNK1120: 16 nicht aufgelöste externe Verweise. ========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========
-
Tausche ein
#pragma comment( lib, "mysqlclient.lib" )
gegen
#pragma comment( lib, "libmysql.lib" )
BTW: Ich seh' erst jetzt, daß ich mich ins C++/CLI-Forum verirrt hab'... Machst Du das mit Absicht!?
-
Die änderung löst das Problem nicht, habe so den skript:
// MySql.cpp: Hauptprojektdatei. #pragma comment( lib, "libmysql.lib" ) //#pragma comment (lib,"advapi32") //#pragma comment (lib,"wsock32") #include "stdafx.h" #include <my_global.h> #include <mysql.h> using namespace System; int main(array<System::String ^> ^args) { MYSQL *conn; MYSQL_RES *res; MYSQL_ROW row; char *server = "127.0.0.1"; char *user = "root"; char *password = "++++"; char *database = "test"; char query[] = "SHOW VARIABLES"; /* init mysql */ conn = mysql_init(NULL); /* connect to database */ if ( mysql_real_connect(conn, server, user, password, database, 0, NULL, 0) ) { /* execute query mysql_query gibt 0 zurück wenn alles ok ist */ if ( !mysql_query(conn, query)) { /* Result abholen */ res = mysql_store_result(conn); /* Result durchlaufen */ while ((row = mysql_fetch_row(res)) != NULL) { OutputDebugStringA(row[0]); OutputDebugStringA("="); OutputDebugStringA(row[1]); OutputDebugStringA("\n"); } /* Result wieder freigeben */ mysql_free_result(res); } else { OutputDebugStringA("Query failed! "); OutputDebugStringA(mysql_error(conn)); OutputDebugStringA("\n"); } } else { OutputDebugStringA("Connection failed! "); OutputDebugStringA(mysql_error(conn)); OutputDebugStringA("\n"); } /* close connection */ mysql_close(conn); }
Wie meinst du das ob ich das mit Absicht mache?
-
Niklasg schrieb:
Die änderung löst das Problem nicht, habe so den skript:
Linkt und läuft bei mir mit einem bis auf Include- und Libraryverzeichnisse unberührten C++/CLI-Projekt in CS 2010 tadellos. Schmeiß das Projekt weg, und versuchs in einem jungfräulichen nochmal.
Niklasg schrieb:
Wie meinst du das ob ich das mit Absicht mache?
Ob Du absichtlich C++/CLI benutzt... ?
-
Erst wenn man die Datei includet hat werden die Fehlermeldungen angezeigt.
Warum sollte ich kein C++/CLI benutzen?
-
Niklasg schrieb:
Erst wenn man die Datei includet hat werden die Fehlermeldungen angezeigt.
Bahnhof. Welche Datei wo inkludiert? Welche Fehlermeldungen?
Niklasg schrieb:
Warum sollte ich kein C++/CLI benutzen?
Gegenfrage: Warum benutzt Du nicht C++ oder C#? Warum ausgerechnet C++/CLI?