Problem mit libmysql



  • Hi

    ich möchte die libmysql.dll in meinem Projekt verwenden.

    doch sobalt ich die mysql.h einbinde, bekomme ich fehler.

    die ersten konnte ich beheben, indem ich die erweiterten Compileroption "Sprachkonvention" auf ANSI gesetzt habe.

    Doch jetzt bekomme ich weitere Fehler, bei denen ich nicht weiter komme:

    [C++ Fehler] winreg.h(88): E2257 , erwartet
    [C++ Fehler] winreg.h(91): E2257 , erwartet
    [C++ Fehler] winreg.h(94): E2303 Typname erwartet
    [C++ Fehler] winreg.h(94): E2139 In Deklaration fehlt ;
    [C++ Fehler] winreg.h(95): E2303 Typname erwartet
    [C++ Fehler] winreg.h(95): E2238 Bezeichner 'provider_info::PQUERYHANDLER' mehrfach deklariert
    [C++ Fehler] winreg.h(94): E2344 'provider_info::PQUERYHANDLER' bereits deklariert
    [C++ Fehler] winreg.h(95): E2139 In Deklaration fehlt ;
    [C++ Fehler] winreg.h(96): E2303 Typname erwartet
    [C++ Fehler] winreg.h(96): E2238 Bezeichner 'provider_info::PQUERYHANDLER' mehrfach deklariert
    [C++ Fehler] winreg.h(95): E2344 'provider_info::PQUERYHANDLER' bereits deklariert
    [C++ Fehler] winreg.h(96): E2139 In Deklaration fehlt ;
    [C++ Fehler] winreg.h(97): E2303 Typname erwartet
    [C++ Fehler] winreg.h(97): E2238 Bezeichner 'provider_info::PQUERYHANDLER' mehrfach deklariert
    [C++ Fehler] winreg.h(96): E2344 'provider_info::PQUERYHANDLER' bereits deklariert
    [C++ Fehler] winreg.h(97): E2139 In Deklaration fehlt ;
    [C++ Fehler] dstring.h(161): E2034 Konvertierung von 'const char *' nach 'char *' nicht möglich
    [C++ Fehler] systobj.h(35): E2449 Größe von 'Entries' unbekannt oder Null
    [C++ Fehler] systobj.h(351): E2303 Typname erwartet
    [C++ Fehler] systobj.h(351): E2139 In Deklaration fehlt ;
    [C++ Fehler] systobj.h(375): E2303 Typname erwartet
    [C++ Fehler] systobj.h(375): E2139 In Deklaration fehlt ;
    [C++ Fehler] systobj.h(381): E2108 Ungültige Verwendung von typedef 'TAggregatedObject'
    [C++ Fehler] systobj.h(402): E2108 Ungültige Verwendung von typedef 'TContainedObject'
    [C++ Fehler] stdlib.h(519): E2316 '_itoa' ist kein Element von 'std'
    [C++ Fehler] stdlib.h(519): E2228 Zu viele Fehlermeldungen oder Warnungen
    

    Mein code sieht so aus 😉 auch wenn ja eigentlich nichts drinne steht:

    //---------------------------------------------------------------------------
    
    #include <vcl.h>
    #include <mysql.h>
    #pragma hdrstop
    
    #include "Main.h"
    //---------------------------------------------------------------------------
    #pragma package(smart_init)
    #pragma resource "*.dfm"
    TForm1 *Form1;
    //---------------------------------------------------------------------------
    __fastcall TForm1::TForm1(TComponent* Owner)
            : TForm(Owner)
    {
    }
    //---------------------------------------------------------------------------
    

    Hoffe ihr könnt mir weiterhelfen.

    THX

    Dagsta



  • Hi

    vieleicht ist es ja auch interessant, was kommt, wenn die Sprachkonvention auf Borland steht:

    Erzeugen
      [C++ Fehler] mysql_com.h(183): E2303 Typname erwartet
      [C++ Fehler] mysql_com.h(183): E2139 In Deklaration fehlt ;
      [C++ Fehler] mysql_com.h(347): E2147 Parameterdeklaration darf nicht mit 'SOCKET' beginnen
    

    Hier der entsprechende Code:

    183:  my_socket fd;					/* For Perl DBI/dbd */
    347:int my_connect(my_socket s, const struct sockaddr *name, unsigned int namelen,
    	       unsigned int timeout);
    


  • Wenn du die VCL verwenden willst wirst du wohl nicht umhinkommen, "Borland"-compliant zu bleiben.

    Was die Parameterdeklaration betrifft: der Compiler kennt SOCKET bzw. my_socket offenbar nicht.



  • Du musst noch eine Datei vor der mysql.h includen. Die windows.h glaube ich wars...
    Zur Not nochmal im Forum suchen...

    mfg
    xXx


Log in to reply