phpbar.de logo

Mailinglisten-Archive

[dbs] Absturz am Programmende

[dbs] Absturz am Programmende

Manfred Stark post at shop82.de
Fre Mai 20 08:19:06 CEST 2005


Hallo Ich habe folgendes Problem:
in einer Windows-Anwendung möchte ich auf Daten aus einer Mysql-Datenbank zugreifen. Der folgende Quelltext (Er ist natürlich unvollständig, habe ihn nur schnell aus dem Kopf ge-
schrieben) funktioniert soweit einwandfrei, aber beim Beenden der Anwendung erhalte ich
eine System-Fehlermeldung. Wenn ich am Ende meiner Funktion oder im Destruktor des Programms die Datenbankverbindung mit mysql_close zu lösen versuche, erhalte ich schon dann eine Fehlermeldung. Mit dem Debugger habe ich festgestellt, daß mein Destruktor
noch abgearbeitet wird, aber sobald Windows die Kontrolle übernimmt kommt es zu einem Ab
sturz. Ich würde mich sehr freuen, wenn mir jemand von Ihnen einen brauchbaren Tip geben 
könnte.

Mit freundlichen Grüßen 
Manfred 

 

C++: 

#include "mysql.h"

// Es folgt die Declaration für  mysql_connect() sowie weitere Funktionen aus der libmysql.dll
typedef MYSQL * __stdcall (*MSQLCO)(MYSQL *, const char *, const char *, const char *);       //  MSQLCO
    //  ...
    //  ...


class  Anwendung : public TWindow
{
  public:
      Anwendung(TWindow* parent = 0);
      ~Anwendung();
      ...
      ...

  protected:
    void Aaaaa();
    DECLARE_RESPONSE_TABLE(TDruckschleife);
    MYSQL * mysql;
    MYSQL * rue;
}

DEFINE_RESPONSE_TABLE1(TDruckschleife, TWindow)
  EV_COMMAND(CM_aaaa,  Aaaaa),
END_RESPONSE_TABLE;

Anwendung::Anwendung(TWindow* parent)
  {
    Init(parent, 0, 0);
  }

void Anwendung::Aaaaa()
  {
    MSQLCO Msql_connect;
    // Hier stehen weitere Zeiger auf Funktionen

        HINSTANCE hi;
    FARPROC adr;


        hi = LoadLibrary("libmysql.dll");
        if(hi) { dc.TextOut(x1,y1,"TDL geladen",11); y1 += 16; }
        else   { dc.TextOut(x1,y1,"Fehler",6); y1 += 16;       }

        adr  = GetProcAddress(hi, "mysql_connect");
        Msql_connect = (MSQLCO)adr;

        rue = (Msql_connect)(mysql, "localhost", "root", "");
               // Hier folgen weitere Mysql-Funktionsaufrufe aus der 
  }

Anwendung::~Anwendung()
  {

  }


int
OwlMain(int /*argc*/, char* /*argv*/ [])
{
  return TDrawApp().Run();
}

php::bar PHP Wiki   -   Listenarchive