Abstürze mit C++, Qt, IBPP und Exception Handling
Verfasst: Mi 16. Jan 2019, 10:42
Hallo zusammen,
vielleicht kann mir jemand eine Hilfestellung geben.
Ich habe IBPP unter mingw mit 64 Bit kompiliert und als Bibliothek gelinkt. Soweit funktioniert das auch. IBPP nutzt an diversen Stellen Exception-Handling für die Weitergabe von DB-Meldungen. Sobald ich jedoch eine Exception auslöse, stürzt mein Programm ab.
Umgebung:
Windows Server 2016 64 Bit
Qt Creator 4.8.0
mingw 7.3.0 64 Bit
IBPP 2.5.3.1
Hier mal ein Auszug des entsprechenden Codes:
Sofern die DB-Parameter stimmen, funktioniert alles. Ändere ich z.B. den Benutzername, müsste eigentlich eine Exception geworfen werden, tut sie aber nicht.
In der .pro-Datei habe ich den Parameter hinzugefügt. Damit sieht meine Compileranweisung z.B. so aus:
Vielleicht ist ja ein C++-Spezi hier im Forum unterwegs, der mir einen Hinweis geben kann.
Dank und Gruß
Martin
vielleicht kann mir jemand eine Hilfestellung geben.
Ich habe IBPP unter mingw mit 64 Bit kompiliert und als Bibliothek gelinkt. Soweit funktioniert das auch. IBPP nutzt an diversen Stellen Exception-Handling für die Weitergabe von DB-Meldungen. Sobald ich jedoch eine Exception auslöse, stürzt mein Programm ab.
Umgebung:
Windows Server 2016 64 Bit
Qt Creator 4.8.0
mingw 7.3.0 64 Bit
IBPP 2.5.3.1
Hier mal ein Auszug des entsprechenden Codes:
Code: Alles auswählen
[...]
const std::string UserName = "SYSDBA";
const std::string Password = "masterkey";
const std::string Database = "/srv/firebird/db.fdb";
const std::string Host = "10.1.1.100";
IBPP::Database db;
try
{
db = IBPP::DatabaseFactory(Host, Database, UserName, Password, "", "", "");
db->Connect();
qDebug() << "Nicht verbunden";
if(db->Connected()) {
qDebug() << db->DatabaseName();
}
else {
qDebug() << "Nicht verbunden";
}
db->Disconnect();
}
catch (IBPP::Exception& e)
{
qDebug() << "Feher";
}
[...]
In der .pro-Datei habe ich den Parameter
Code: Alles auswählen
CONFIG += exceptions
Code: Alles auswählen
[...]
g++ -c -fno-keep-inline-dllexport -DIBPP_WINDOWS -O2 -std=gnu++11 -fexceptions -mthreads -Wall -W -Wextra -DUNICODE -D_UNICODE -DWIN32 -DMINGW_HAS_SECURE_API=1 -DIBPP_GCC -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_NEEDS_QMAIN -I..\..\FBGUI -I. -I..\..\SynToolkit -I..\..\SynDB -I..\..\ibpp\core -IC:\Qt\5.12.0\mingw73_64\include -IC:\Qt\5.12.0\mingw73_64\include\QtWidgets -IC:\Qt\5.12.0\mingw73_64\include\QtGui -IC:\Qt\5.12.0\mingw73_64\include\QtANGLE -IC:\Qt\5.12.0\mingw73_64\include\QtCore -Irelease -I. -I\include -IC:\Qt\5.12.0\mingw73_64\mkspecs\win32-g++ -o release\main.o ..\..\FBGUI\main.cpp
[...]
Dank und Gruß
Martin