MySQL++ und VC++



  • Hallo alle zusammen,
    folgendes Problem...
    Ich habe versucht die MySQL API in meinem Projekt einzubinden, nach folgendes Anleitung:

    "Die Konfiguration bezieht sich auf die Einstellungen, die in MS Visual C++ 6.0 vorgenommen werden müssen, um auf den MySQL Server zugreifen zu können.

    Kopieren Sie zunächst die Datei 'libMySQL.dll' von 'C:\MySQL\cpp\mysql\lib' in Ihr Projektverzeichnis.
    ACHTUNG: Die MySQL Distribution und die C++ API beinhalten mehrere Dateien diesen Namens, die allerdings nicht identisch sind ! Verwenden Sie unbedingt die Datei aus dem angegebenen Pfad !

    Fügen Sie nun im Visual C++ Projekt Explorer die Datei 'MySQL++.lib' aus dem Ordner 'C:\MySQL\cpp\lib' zum Projekt hinzu.

    Als nächstes müssen Sie die Einstellungen für das Projekt aufrufen.
    Wählen Sie den Registerreiter 'C/C++' und wechseln Sie im DropDown Feld zu 'Präprozessor'. Fügen Sie dort als zusätzliche Include- Pfade 'c:\mysql\cpp\include, c:\mysql\include' ein.

    Wechseln Sie nun im DropDown Feld auf 'Code Generation'.
    Im jetzt vorhandenen DropDown Feld 'Laufzeit-Bibliothek' wählen Sie den Eintrag 'Multithreaded DLL debugen' aus.

    Wählen Sie nun den Registerreiter 'Linker'.
    Unter 'Objekt-/Bibliothek-Module' fügen Sie 'libmysql.lib' hinzu.

    Wechseln Sie nun im Kategorie- DropDown Feld zu 'Eingabe' und fügen Sie bei 'Zusätzlicher Bibliothekpfad' 'C:\mysql\cpp\lib, C:\mysql\lib\debug' ein.

    Damit ist Visual C++ 6.0 korrekt eingestellt um auf den MySQL Server zuzugreifen."

    Das Problem ist dass ich immer folgende Fehler erhalte:

    c:\mysql\mysql\include\convert1.hh(40) : warning C4273: 'strtol' : Inkonsistente DLL-Bindung. dllexport angenommen.
    c:\mysql\mysql\include\convert1.hh(41) : warning C4273: 'strtoul' : Inkonsistente DLL-Bindung. dllexport angenommen.
    c:\mysql\mysql\include\convert1.hh(63) : error C2061: Syntaxfehler : Bezeichner 'longlong'
    c:\mysql\mysql\include\convert1.hh(64) : error C2061: Syntaxfehler : Bezeichner 'longlong'
    c:\mysql\mysql\include\convert1.hh(65) : error C2146: Syntaxfehler : Fehlendes ';' vor Bezeichner 'strtoll'
    c:\mysql\mysql\include\convert1.hh(65) : fatal error C1004: Unerwartetes Dateiende gefunden

    Kann mir jemand helfen?



  • ich denke, ist ein einfaches problem

    achte darauf...

    1. In the source files, in which you want to use MySQL++, add the line
      #include <mysql++>
      after all other included header files (especially those of MFC)

    also dringend #include <mysql++> erst nach afx und anderem includen..
    warum? weil afx schon die windows.h drin hat .. und mysql damit irgendwie in konflikt gerät..

    danach müsste es gehen, bei mir läuft mysql++ im studio wunderbar, ob mit afx oder ohne (also mfc oder konsole...)

    ps: ich hoffe, du hast dir die neueste, also mysql++ 1.7.1 readme (Win32/Visual C++) version gezogen.

    die alten hatten bugs...



  • Danke elise...
    Ja, ich habe die 1.7.1 Version...
    Und so sieht es bei mir aus mit include:

    #include "stdafx.h"
    #include "DEDUCT.h"
    #include "AG_Interne_Daten.h"
    #include "Angebot.h"
    #include "TABELLE.h"
    #include "MainFrm.h"
    
    #include <mysql++>
    
    #ifdef _DEBUG
    #define new DEBUG_NEW
    #undef THIS_FILE
    static char THIS_FILE[] = __FILE__;
    #endif
    

    Also, scheint es, meiner Meinung nach, alles ok zu sein...
    Woran könnte es noch liegen?



  • irgendwie sieht es trotzdem nach mehrfach include, oder sich störenden includes aus

    bei mir läuft es.. hmm

    es gibt eine example datei für mfc im ordner von mysql++.. läuft die bei dir? daran kann man sich gut orientieren... die geht prima..



  • Danke für deine Antworten...
    Ich habe die API neu "installiert" und die includes neugemacht und jetzt läuft es, zwar mit 12 Warnungen aber ansonsten läuft alles... 😕



  • die warnungen sind im grünen bereich.. kommen bei mir auch, irgendwelche verkürzungen...

    ansonsten... zauberei 😉



  • Also Warnungen habe ich nicht. Die kommen sicher nicht von MYSQL-API.



  • Also, die tretten nur auf wenn ich mysql++ include, außerdem habe ich bis jetzt kein Quellcode dafür geschrieben... 😕
    Ich zeige es dir wie es bei mir aussieht... Am endeffekt sind es nur diese, die jedesmal kommen wenn ich mysql++ in den verschiedenen dateien include...
    Ach ja, VC++ 6 mit SP 5 falls es von interesse sein sollte...

    c:\mysql\mysql++\include\type_info1.hh(39) : warning C4800: 'int' : Variable wird auf booleschen Wert ('True' oder 'False') gesetzt (Auswirkungen auf Leistungsverhalten moeglich)
    c:\mysql\mysql++\include\type_info1.hh(159) : warning C4800: 'unsigned int' : Variable wird auf booleschen Wert ('True' oder 'False') gesetzt (Auswirkungen auf Leistungsverhalten moeglich)
    c:\mysql\mysql++\include\type_info1.hh(172) : warning C4800: 'int' : Variable wird auf booleschen Wert ('True' oder 'False') gesetzt (Auswirkungen auf Leistungsverhalten moeglich)
    c:\mysql\mysql++\include\type_info1.hh(176) : warning C4800: 'int' : Variable wird auf booleschen Wert ('True' oder 'False') gesetzt (Auswirkungen auf Leistungsverhalten moeglich)
    c:\mysql\mysql++\include\type_info1.hh(180) : warning C4800: 'int' : Variable wird auf booleschen Wert ('True' oder 'False') gesetzt (Auswirkungen auf Leistungsverhalten moeglich)
    c:\mysql\mysql++\include\type_info1.hh(184) : warning C4800: 'int' : Variable wird auf booleschen Wert ('True' oder 'False') gesetzt (Auswirkungen auf Leistungsverhalten moeglich)
    c:\mysql\mysql++\include\convert1.hh(40) : warning C4273: 'strtol' : Inkonsistente DLL-Bindung. dllexport angenommen.
    c:\mysql\mysql++\include\convert1.hh(41) : warning C4273: 'strtoul' : Inkonsistente DLL-Bindung. dllexport angenommen.
    c:\mysql\mysql++\include\sql_query1.hh(37) : warning C4800: 'class SQLQuery *' : Variable wird auf booleschen Wert ('True' oder 'False') gesetzt (Auswirkungen auf Leistungsverhalten moeglich)
    c:\mysql\mysql++\include\compare1.hh(48) : warning C4800: 'int' : Variable wird auf booleschen Wert ('True' oder 'False') gesetzt (Auswirkungen auf Leistungsverhalten moeglich)
    c:\mysql\mysql++\include\result1.hh(42) : warning C4800: 'char' : Variable wird auf booleschen Wert ('True' oder 'False') gesetzt (Auswirkungen auf Leistungsverhalten moeglich)



  • @unix-tom

    klar kommen die warnungen nicht, wenn du bei konsole oder anderem bleibst..
    es geht nur um ein mfc projekt.

    selbst das mitgelieferte mfc example projekt spuckt beim compilieren unter dem visual studio 6 folgende warnungen aus:

    MFC_ex.cpp
    c:\windows\desktop\mysql++-1.7.1-1-win32-vc++\include\type_info1.hh(39) : warning C4800: 'int' : Variable wird auf booleschen Wert ('True' oder 'False') gesetzt (Auswirkungen auf Leistungsverhalten moeglich)
    c:\windows\desktop\mysql++-1.7.1-1-win32-vc++\include\type_info1.hh(159) : warning C4800: 'unsigned int' : Variable wird auf booleschen Wert ('True' oder 'False') gesetzt (Auswirkungen auf Leistungsverhalten moeglich)
    c:\windows\desktop\mysql++-1.7.1-1-win32-vc++\include\type_info1.hh(172) : warning C4800: 'int' : Variable wird auf booleschen Wert ('True' oder 'False') gesetzt (Auswirkungen auf Leistungsverhalten moeglich)
    c:\windows\desktop\mysql++-1.7.1-1-win32-vc++\include\type_info1.hh(176) : warning C4800: 'int' : Variable wird auf booleschen Wert ('True' oder 'False') gesetzt (Auswirkungen auf Leistungsverhalten moeglich)
    c:\windows\desktop\mysql++-1.7.1-1-win32-vc++\include\type_info1.hh(180) : warning C4800: 'int' : Variable wird auf booleschen Wert ('True' oder 'False') gesetzt (Auswirkungen auf Leistungsverhalten moeglich)
    c:\windows\desktop\mysql++-1.7.1-1-win32-vc++\include\type_info1.hh(184) : warning C4800: 'int' : Variable wird auf booleschen Wert ('True' oder 'False') gesetzt (Auswirkungen auf Leistungsverhalten moeglich)
    c:\windows\desktop\mysql++-1.7.1-1-win32-vc++\include\convert1.hh(40) : warning C4273: 'strtol' : Inkonsistente DLL-Bindung. dllexport angenommen.
    c:\windows\desktop\mysql++-1.7.1-1-win32-vc++\include\convert1.hh(41) : warning C4273: 'strtoul' : Inkonsistente DLL-Bindung. dllexport angenommen.
    c:\windows\desktop\mysql++-1.7.1-1-win32-vc++\include\sql_query1.hh(37) : warning C4800: 'class SQLQuery *' : Variable wird auf booleschen Wert ('True' oder 'False') gesetzt (Auswirkungen auf Leistungsverhalten moeglich)
    c:\windows\desktop\mysql++-1.7.1-1-win32-vc++\include\sql_query1.hh(135) : warning C4355: this' : wird in Initialisierungslisten fuer Basisklasse verwendet
    c:\windows\desktop\mysql++-1.7.1-1-win32-vc++\include\compare1.hh(48) : warning C4800: 'int' : Variable wird auf booleschen Wert ('True' oder 'False') gesetzt (Auswirkungen auf Leistungsverhalten moeglich)
    c:\windows\desktop\mysql++-1.7.1-1-win32-vc++\include\result1.hh(33) : warning C4355: this' : wird in Initialisierungslisten fuer Basisklasse verwendet
    c:\windows\desktop\mysql++-1.7.1-1-win32-vc++\include\result1.hh(42) : warning C4800: 'char' : Variable wird auf booleschen Wert ('True' oder 'False') gesetzt (Auswirkungen auf Leistungsverhalten moeglich)
    d:\programme\microsoft visual studio\vc98\include\xmemory(38) : warning C4786: 'std::_Tree<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::pair<std::basic_string<char,std::char_traits<char>,std::allocator<char> > const ,int

    ,std::map<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,int,std::less<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,std::allocator<int> >::_Kfn,std::less<std::basic_string<char,std::char_traits<char>,
    std::allocator<char> > >,std::allocator<int> >::_Nil' : Bezeichner wurde auf '255' Zeichen in den Debug-Informationen verkürzt
    d:\programme\microsoft visual studio\vc98\include\xmemory(38) : warning C4786: 'std::_Tree<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::pair<std::basic_string<char,std::char_traits<char>,std::allocator<char> > const ,int
    ,std::map<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,int,std::less<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,std::allocator<int> >::_Kfn,std::less<std::basic_string<char,std::char_traits<char>,
    std::allocator<char> > >,std::allocator<int> >::_Nilrefs' : Bezeichner wurde auf '255' Zeichen in den Debug-Informationen verkürzt
    d:\programme\microsoft visual studio\vc98\include\xmemory(38) : warning C4786: 'std::pair<std::_Tree<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::pair<std::basic_string<char,std::char_traits<char>,std::allocator<char> >
    const ,int>,std::map<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,int,std::less<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,std::allocator<int> >::_Kfn,std::less<std::basic_string<char,std::char_tra
    its<char>,std::allocator<char> > >,std::allocator<int> >::iterator,bool>' : Bezeichner wurde auf '255' Zeichen in den Debug-Informationen verkürzt
    d:\programme\microsoft visual studio\vc98\include\xmemory(38) : warning C4786: 'std::_Tree<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::pair<std::basic_string<char,std::char_traits<char>,std::allocator<char> > const ,int
    ,std::map<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,int,std::less<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,std::allocator<int> >::_Kfn,std::less<std::basic_string<char,std::char_traits<char>,
    std::allocator<char> > >,std::allocator<int> >' : Bezeichner wurde auf '255' Zeichen in den Debug-Informationen verkürzt
    d:\programme\microsoft visual studio\vc98\include\xmemory(38) : warning C4786: 'std::_Tree<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::pair<std::basic_string<char,std::char_traits<char>,std::allocator<char> > const ,int
    ,std::map<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,int,std::less<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,std::allocator<int> >::_Kfn,std::less<std::basic_string<char,std::char_traits<char>,
    std::allocator<char> > >,std::allocator<int> >::const_iterator' : Bezeichner wurde auf '255' Zeichen in den Debug-Informationen verkürzt
    d:\programme\microsoft visual studio\vc98\include\xmemory(38) : warning C4786: 'std::_Tree<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::pair<std::basic_string<char,std::char_traits<char>,std::allocator<char> > const ,int
    ,std::map<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,int,std::less<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,std::allocator<int> >::_Kfn,std::less<std::basic_string<char,std::char_traits<char>,
    std::allocator<char> > >,std::allocator<int> >::iterator' : Bezeichner wurde auf '255' Zeichen in den Debug-Informationen verkürzt
    d:\programme\microsoft visual studio\vc98\include\xmemory(38) : warning C4786: 'std::_Tree<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::pair<std::basic_string<char,std::char_traits<char>,std::allocator<char> > const ,int
    ,std::map<std::basic_string<char,std::char_traits<char>,std::allStdAfx.cpp
    ocator<char> >,int,std::less<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,std::allocator<int> >::_Kfn,std::less<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,std::allocator<int> >::_Node' : Bezeichn
    er wurde auf '255' Zeichen in den Debug-Informationen verkürzt
    d:\programme\microsoft visual studio\vc98\include\xmemory(38) : warning C4786: 'std::_Tree<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::pair<std::basic_string<char,std::char_traits<char>,std::allocator<char> > const ,int
    ,std::map<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,int,std::less<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,std::allocator<int> >::_Kfn,std::less<std::basic_string<char,std::char_traits<char>,
    std::allocator<char> > >,std::allocator<int> >::_Redbl' : Bezeichner wurde auf '255' Zeichen in den Debug-Informationen verkürzt
    Linker-Vorgang läuft...

    da ich das gewohnt bin, lebe ich damit, wenn es selbst bei einem "original-produkt" vom hersteller passiert ... 😃



  • das is ja ekelhaft. 😞 😞



  • Ich mache nur MFC-Projekte. Wer braucht schon Konsole auf Windows.

    Allerdings kommen die Fehlermeldungen sicher nicht von MYSQL sondern von MYSQL++. Da ich aber meine eigene C++-Klasse verwende habe ich diese Probleme nicht.



  • @unix-tom

    logisch von mysql++, ... mal irgendwann erfoschen, was das studio so dagegen hat..
    ich werde die warnungen natürlich erstmal dem compiler in die schuhe schieben
    *grins*

    ps:
    im grunde ist es auch egal.. die meisten warnungen sind nur von int nach bool.. und damit verständlich.

    die template sachen sind auch logisch..

    nur diese sache ist mir noch unklar.

    c:\windows\desktop\mysql++-1.7.1-1-win32-vc++\include\convert1.hh(40) : warning C4273: 'strtol' : Inkonsistente DLL-Bindung. dllexport angenommen.
    c:\windows\desktop\mysql++-1.7.1-1-win32-vc++\include\convert1.hh(41) : warning C4273: 'strtoul' : Inkonsistente DLL-Bindung. dllexport angenommen.

    da forsche ich nochmal.. ansonsten alles im grünen bereich 😉

    (nur um den mysql fan zu beruhigen ...)



  • Hi Leute!

    Ich hab ne Lösung für die ganzen Fehlerund Warnungen.

    Ich hab mir ne Klasse erstellt, die das alles machen soll und es vom MFC-eigenen-Text abgeschottet.

    Siehe da, alle Meldungen waren weg und bei Compilierung 0-Fehler und 0 Warnungen.

    Ranger



  • Und wenn Du mal das Projekt komplett neu Übersetzt ?



  • Ich compiliere eigentlich immer das ganze Projekt. Also das gleiche Ergebnis, 0 Fehler 0 Warnungen.

    Ranger


Anmelden zum Antworten