Eine Verbindung zur einer MySQL Datenbank sicher herstellen?
-
Das stimmt, C++ kann wirklich nichts für die WinAPI. Nur stört mich an C++ das diese Sprache keine eigene GUI mitbringt die besser anpassbarer ist.
Naja, wie ich das verstanden habe, ist QT nur für Open Source User Kostenlos, die Preise sind meiner Meinung nach Unverschämt, nicht weil es im Jahr Summe X kosten würde, sondern, das man Monatlich eine Hohe Summe bezahlen soll.
-
@Lucius sagte in Eine Verbindung zur einer MySQL Datenbank sicher herstellen?:
Das stimmt, C++ kann wirklich nichts für die WinAPI. Nur stört mich an C++ das diese Sprache keine eigene GUI mitbringt die besser anpassbarer ist.
Naja, wie ich das verstanden habe, ist QT nur für Open Source User Kostenlos, die Preise sind meiner Meinung nach Unverschämt, nicht weil es im Jahr Summe X kosten würde, sondern, das man Monatlich eine Hohe Summe bezahlen soll.
Ja, irgendwie muss ne Firma auch Geld verdienen, oder? Was spricht denn gegen Open Source?
Und das C++ keine GUI mitbringt seh ich als großen Vorteil, da die Standard APIs immer sehr komplex und kompliziert gestaltet werden.
-
Es spricht nichts dagegen, allerdings nur Gezwungen zu sein, Open Source zu Programmieren, damit ich ein Framework nutzen darf, finde ich halt doof.
Inwiefern ein Vorteil wegen den Standard APIs?
-
Wenn du relativ zügig eine GUI erstellen möchtest, kannst du dir auch mal Nana anschauen (s.a. Screenshots) - es nutzt modernes C++.
-
@Th69 Danke für den Tipp, das werde ich auf jeden fall gleich mal machen.
PS. Wie nutze ich Nana?
-
@Lucius sagte in Eine Verbindung zur einer MySQL Datenbank sicher herstellen?:
@Th69 Danke für den Tipp, das werde ich auf jeden fall gleich mal machen.
PS. Wie nutze ich Nana?
Wie andere zuvor schon geschrieben haben. Du musst die Doku lesen!
-
@Lucius sagte in Eine Verbindung zur einer MySQL Datenbank sicher herstellen?:
Es spricht nichts dagegen, allerdings nur Gezwungen zu sein, Open Source zu Programmieren, damit ich ein Framework nutzen darf, finde ich halt doof.
Kannst du doof finden. Ich finde es gut, dass OS Projekte nicht zahlen müssen. Aber gut es gibt noch andere Libs.
Inwiefern ein Vorteil wegen den Standard APIs?
Es wird im Standard (meiner Meinung nach) gerne mal over engineered. Im Moment darf ich mich zum Bleistift wieder mit vector<bool> rumschlagen. Wer zur Hölle braucht das und warum muss das in den Standard.
-
Du kannst Qt auch kommerziell nutzen ohne deinen Code zu veröffentlichen und ohne dafür zu bezahlen.
-
Danke an euch beiden.
-
@Lucius hier, les mal meinen ersten Beitrag. Da steht alles: https://www.c-plusplus.net/forum/topic/350970/qt-kommerziell-nutzen
Hinzu kommt glaube noch, dass du Qt inklusive Copyright irgendwo nennen musst. Vielleicht in einem "About" Fenster oder so
-
@Zhavok Ja das habe ich auch überall gelesen. Das Problem für mich ist die Abhängigkeit, QT nutzt ja auch die WinAPI wenn ich mich nicht täusche? Dann frage ich mich doch, ob das nicht besser wäre die WinAPI richtig zu verstehen, damit man selbst seine Form ohne QT aufbauen kann.
Am Anfang ist das natürlich Arbeit, aber wenn man einmal eine Form richtig angepasst hat und diese als Vorlage nimmt, spart man auch sehr viel Zeit, zwar nicht so viel wie in QT, aber man hat die Abhängigkeit / Lizenzen nicht mehr.
Klar unter Linux oder Mac müsste man das ganze auch machen, aber ich selbst werde erstmal nur in Windows proggen.
-
Willst du erst viel lernen (und ausprobieren) müssen oder möchtest du in kurzer Zeit eine Applikation entwickeln?
-
Qt ist Multiplatform, hat ne super Doku, allerhand Features für allemöglichen Probleme und ich persönlich finde das Design der Lib ganz gut. Du kannst sogar damit mobile Anwendungen basteln. Auf die WinAPI zu setzen kann ich dir absolut nicht empfehlen. Du kannst dadurch effektiv nichts besser als wenn du ne Lib verwendest. Klar, du machst dich damit abhängig von der Qt, aber wenn du irgendwann deine Software auf Linux oder MacOS veröffentlichten willst kannst du auch direkt von vorn anfangen. Und wenn du Qt nicht magst dann nimm was anderes. ImGui soll auch ganz gut sein.
-
@Th69 Naja, viel lernen muss ich sowieso. Ich finde wenn man eine Sache lernt, dann sollte man Sie schon richtig lernen. Ich war noch nie ein Freund von Frameworks. In PHP hat man ja auch sehr viele Möglichkeiten und ja, man muss das Rad nicht neu erfinden, allerdings sollte man wissen, wie das Rad gebaut wurde.
Die Vergangenheit hat auch gezeigt, das einige Frameworks bereits gestorben sind. Ich bin ja auch nicht unter Zeitdruck. Achja und ich baue die WinAPI Form bis hin zu den Steuerelemente in Ca. 1 Stunde auf. Klar muss da noch das Design angepasst werden und das hält zwar auf, aber mit der Zeit wird man immer Schneller. Ist auch kein Hexenwerk
@Zhavok Na klar, hast ja nicht unrecht. Es kann auch sein das ich ein anderes Framework nutze statt WinAPI, imGUI oder wxwidgets, welches davon besser ist, keine Ahnung. Wenn ich an meinen Grenzen mit der WinAPI komme, dann muss ich mir ja sowieso was anderes überlegen
Aber jetzt stehen erstmal die ganzen Tipps hier Vordergrund. Muss die Sowieso in der Console testen.
-
@Lucius sagte in Eine Verbindung zur einer MySQL Datenbank sicher herstellen?:
Naja, viel lernen muss ich sowieso. Ich finde wenn man eine Sache lernt, dann sollte man Sie schon richtig lernen. Ich war noch nie ein Freund von Frameworks. In PHP hat man ja auch sehr viele Möglichkeiten und ja, man muss das Rad nicht neu erfinden, allerdings sollte man wissen, wie das Rad gebaut wurde.
Zum üben und lernen kann man einiges machen. Allerdings wird man so selten fertig und nicht in einer konkurrenzfähigen Qualität.
Am Ende ist auch dabei die Frage, wie weit man das durchexerzieren will. Ist die stl in Ordnung? Ist die WinApi in Ordnung? Auch das sind Bibliotheken.
Aber am Ende ist es dein Spaß
-
@Lucius
Wenn du es unbedingt mit C++ machen willst, wieso dann nicht mit WinRT bzw. dem App SDK?
https://learn.microsoft.com/en-us/windows/uwp/cpp-and-winrt-apis/intro-to-using-cpp-with-winrt
https://learn.microsoft.com/en-us/windows/apps/windows-app-sdk/ps: Direkt von der Client-Anwendung auf den Datenbank-Server zugreifen solltest du trotzdem nicht. Warum hab ich ja schon beschrieben. Auch wenn du es hartnäckig ignorierst.
-
Ist denn das mit dem WinRT auch richtiges C++ und nicht wieder so ein MS ding?
Ich glaube ich weiß was das ist. Ist das nicht die GUI die man nur in Verbindung des MS Stores nutzen kann, also keine exe datei?
-
@Lucius sagte in Eine Verbindung zur einer MySQL Datenbank sicher herstellen?:
Ist denn das mit dem WinRT auch richtiges C++ und nicht wieder so ein MS ding?
Das ist richtiges C++. Natürlich ist es auch ein MS Ding. Das ganze SDK kommt ja von MS.
Ich glaube ich weiß was das ist. Ist das nicht die GUI die man nur in Verbindung des MS Stores nutzen kann, also keine exe datei?
Mit WinRT/WinUI 2 bist du zwar auf UWP eingeschränkt, aber die App kann man auch ohne MS Store ausliefern/installieren. Mit den nötigen Einträgen im Manifest + Hakerl vom User in den Windows-Settings kann die App dann auch aus ihrer Sandbox "ausbrechen", also z.B. auf beliebige Files zugreifen.
Mit App SDK/WinUI 3 kannst du ne ganz normale C++ Desktop-Anwendung machen. Läuft halt nur ab Windows 10 Version so-und-so.
-
Ja das ist auch eine Möglichkeit. Ich bin derzeit aber an Boost Lib dran, verstehe es zwar noch nicht wirklich aber gebe mir mühe das zu verstehen.
-
UPDATE Boost:
Eine TCP Verbindung (also ein HTTP-Package) konnte ich jetzt aufbauen bzw. Senden, die frage ist nur, wie kann ich mir das bezüglich PHP bzw. Datenbank zu nutze machen? Wie frage ich darüber zum Beispiel in der DB einen User ab?Ich verstehe eins noch nicht, ich bekomme ein Moved Permanently? Warum passiert das?
std::stringstream getRequest; getRequest << "GET / HTTP/1.1\r\n"; getRequest << "Host: stackoverflow.com\r\n"; getRequest << "Connection: keep-alive\r\n"; getRequest << "user-agent: Mozilla / 5.0 (Windows NT 10.0; Win64; x64) AppleWebKit / 537.36 (KHTML, like Gecko) Chrome / 107.0.0.0 Safari / 537.36"; getRequest << "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8\r\n"; getRequest << "Accept-Language: de-DE,de;q=0.8,en-US;q=0.6,en;q=0.4\r\n"; getRequest << "\r\n"; boost::asio::write(tcpSocket, boost::asio::buffer(getRequest.str())); tcpSocket.async_read_some(boost::asio::buffer(data), readHandler);