<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[C++&#x2F;CLI mit .NET]]></title><description><![CDATA[C++ mit .NET? Nennt sich C++&#x2F;CLI, oder in der früheren Version Managed C++. Programmierung des .NET-Frameworks mit C++, oder Fragen zu den Erweiterungen von C++&#x2F;CLI mit dem Visual Studio.]]></description><link>https://www.c-plusplus.net/forum/category/78</link><generator>RSS for Node</generator><lastBuildDate>Sat, 11 Apr 2026 11:22:34 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/category/78.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 05 Oct 2018 07:08:07 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Windows Forms und Visual C++ MACHT KEINEN SINN!]]></title><description><![CDATA[An der Sinnlosigkeit hat sich doch nichts geändert... 
Oder was meinst Du?
]]></description><link>https://www.c-plusplus.net/forum/topic/263084/windows-forms-und-visual-c-macht-keinen-sinn</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/topic/263084/windows-forms-und-visual-c-macht-keinen-sinn</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Fri, 05 Oct 2018 07:08:07 GMT</pubDate></item><item><title><![CDATA[VC ++ 2008 Kindelemente vom Kindelement vom tableLayoutPanel ansprechen?]]></title><description><![CDATA[@Quiche-Lorraine Ja ok, ich habe euch verarscht ... Hier ist NoIDE. 
Wie lange ist denn hier die mittlere Vergessenrate?
Also, wie lange muss man mit einer Neuanmeldung warten, weil man sich nicht für (ökonomisch sinnvolle) Waffenlieferungen, die Menschen töten, in Kriegsgebiete, die uns überhaupt nichts angehen, ausgesprochen hat? Oder beim schwarz-weiß Bild des &quot;Sündenbocks&quot; nicht mitmachen will? Oder gar das absolut Unsagbare, also dass Trump seine Sache bisher gut macht, schreibt?  Oder, dass die Vergabe der Nobelpreise gar nicht politisch beeinflusst sind, und selbstverständlich nur die wis. Leistung im Mittelpunkt steht... Oder, dass sämtliche &quot;Mohrenstraßen&quot; oder Schnitzel jetzt die phantastischsten Umbenennungen bekommen. Oder... dass polnische Richter absolut unbestechlich sind? Soll ich noch weiter machen, oder genügt das erst mal?
]]></description><link>https://www.c-plusplus.net/forum/topic/355376/vc-2008-kindelemente-vom-kindelement-vom-tablelayoutpanel-ansprechen</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/topic/355376/vc-2008-kindelemente-vom-kindelement-vom-tablelayoutpanel-ansprechen</guid><dc:creator><![CDATA[kali-hi]]></dc:creator><pubDate>Mon, 27 Oct 2025 20:44:53 GMT</pubDate></item><item><title><![CDATA[Frage zu Kommunikation zwischen C# Anwendung und C++ CLI DLL]]></title><description><![CDATA[@Th69 sagte in Frage zu Kommunikation zwischen C# Anwendung und C++ CLI DLL:

Hast du diesen Code mal durch
lblTmpCheck.Text = wfc.retSampleText();

  war wohl in der DLL etwas nicht ok, obwohl sie erstellt wurde???. Also bereinigt, neu erstellt - und schon funktionierts  
und genau daran lags, denn da kam dann:
CS0570 &quot;my_func.retSampleText(basic_string&lt;char,std::char_traits&lt;char&gt;,std::allocator&lt;char&gt; &gt;*)&quot; wird von der Sprache nicht unterstützt.
Danke für Deine Geduld Th69 
]]></description><link>https://www.c-plusplus.net/forum/topic/355247/frage-zu-kommunikation-zwischen-c-anwendung-und-c-cli-dll</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/topic/355247/frage-zu-kommunikation-zwischen-c-anwendung-und-c-cli-dll</guid><dc:creator><![CDATA[Smitty]]></dc:creator><pubDate>Tue, 06 May 2025 07:06:42 GMT</pubDate></item><item><title><![CDATA[Exit Thread (Loop)]]></title><description><![CDATA[@Schlangenmensch sagte in Exit Thread (Loop):

@SoIntMan Wenn es nur ums stoppen geht kannst du dir mal std::jthread::request_stop anschauen.
Ich würde prinzipiell auf jthread umstellen. Das macht keinen Unterschied, bis auf &quot;stopbar&quot; und der rejoined im Destruktor automatisch, was das RAII verhalten ist, was man eigentlich von einem Thread erwarten würde.

interessant der JThread.. aber ich verwende C++14 da muss ich beim alten bleiben;)
]]></description><link>https://www.c-plusplus.net/forum/topic/355155/exit-thread-loop</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/topic/355155/exit-thread-loop</guid><dc:creator><![CDATA[SoIntMan]]></dc:creator><pubDate>Tue, 03 Dec 2024 08:41:18 GMT</pubDate></item><item><title><![CDATA[peer to peer Programmierung]]></title><description><![CDATA[@Eric1970Karlsruh sagte in peer to peer Programmierung:

Wie programmiert man am besten ein peer to peer netzwerk ohne server?

Sorry meine Glaskugel ist kaputt.
Welches Netzwerk? Bluetooth? Bluetooth LE? ANT? Zigbee?
]]></description><link>https://www.c-plusplus.net/forum/topic/355141/peer-to-peer-programmierung</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/topic/355141/peer-to-peer-programmierung</guid><dc:creator><![CDATA[Quiche Lorraine]]></dc:creator><pubDate>Wed, 20 Nov 2024 09:19:47 GMT</pubDate></item><item><title><![CDATA[move construction  with  default ctor object]]></title><description><![CDATA[@SoIntMan Hm, ich bekomme auc mit MSVC eine Warnung:

warning C4930: 'Bar b(Foo (__cdecl *)(void))': prototyped function not called (was a variable definition intended?)

Ist nicht so schön, wie die vom GCC, aber es wird zumindest angemeckert.
]]></description><link>https://www.c-plusplus.net/forum/topic/355132/move-construction-with-default-ctor-object</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/topic/355132/move-construction-with-default-ctor-object</guid><dc:creator><![CDATA[Schlangenmensch]]></dc:creator><pubDate>Mon, 11 Nov 2024 10:04:01 GMT</pubDate></item><item><title><![CDATA[Erfahren Sie, ob mein Mobiltelefon mit dem Internet verbunden ist (c++ builder)]]></title><description><![CDATA[//TJConnectivityManager::JavaClass-&gt;TYPE_WIFI; 
#define TYPE_WIFI 0x00000001 
//TJConnectivityManager::JavaClass-&gt;TYPE_MOBILE; 
#define TYPE_MOBILE 0x00000000 
//TJConnectivityManager::JavaClass-&gt;TYPE_VPN; 
#define TYPE_VPN 0x00000011 
//TJConnectivityManager::JavaClass-&gt;TYPE_WIMAX; 
#definir TYPE_WIMAX 0x00000006
 
void __fastcall Tfm_main_wifistatus :: Timer1Timer ( TObject * Remitente ) 
{ 
        UnicodeString net_str ; 
        _di_JNetworkInfo n_info = f_ConnectivityManager- &gt; getActiveNetworkInfo ( ) ; if ( n_info ! = nullptr ) { switch ( n_info - &gt; getType ( ) ) { case TYPE_WIFI : 
                net_str = L &quot;(TYPE_WIFI)&quot; ; romper ; caso TYPE_MOBILE : 
                net_str = L &quot;(TYPE_MOBILE)&quot; ; romper ; caso TYPE_VPN : 
                net_str = L &quot;(TYPE_VPN)&quot; ; romper ; } } else 
            net_str = L &quot;(nullptr)&quot; ;
 }

]]></description><link>https://www.c-plusplus.net/forum/topic/355115/erfahren-sie-ob-mein-mobiltelefon-mit-dem-internet-verbunden-ist-c-builder</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/topic/355115/erfahren-sie-ob-mein-mobiltelefon-mit-dem-internet-verbunden-ist-c-builder</guid><dc:creator><![CDATA[Drummer1972]]></dc:creator><pubDate>Fri, 25 Oct 2024 08:26:32 GMT</pubDate></item><item><title><![CDATA[&quot;Could not load file or assembly...&quot; beim Verwenden einer C++&#x2F;CLI-dll aus dem C++ Builder]]></title><description><![CDATA[Laß dir mal vor dem fehlerhaften Aufruf Environment.CurrentDirectory ausgeben. Ist dieses in beiden Programmen das aktuelle Programmverzeichnis?
]]></description><link>https://www.c-plusplus.net/forum/topic/354644/could-not-load-file-or-assembly-beim-verwenden-einer-c-cli-dll-aus-dem-c-builder</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/topic/354644/could-not-load-file-or-assembly-beim-verwenden-einer-c-cli-dll-aus-dem-c-builder</guid><dc:creator><![CDATA[Th69]]></dc:creator><pubDate>Sat, 18 May 2024 06:40:05 GMT</pubDate></item><item><title><![CDATA[C-Style DLL-Schnittstelle mit C++&#x2F;CLI und Stringübergaben]]></title><description><![CDATA[Hallo,
schau dir das C++ Beispiel unter IntPtr.ToPointer an (dafür explizit die &quot;Language&quot;-Combobox von &quot;C#&quot; auf &quot;C++&quot; stellen).
Und anstatt der &quot;reverse-loop&quot; kannst du dann einfach wcsncpy(...) aufrufen, s. strncpy, _strncpy_l, wcsncpy, _wcsncpy_l, _mbsncpy, _mbsncpy_l.
Es gibt außerdem einen expliziten Cast-Operator von IntPtr auf void * (daher ist in deinem Code kein ToPointer()-Aufruf notwendig - ich finde dies jedoch lesbarer), s. IntPtr.Explicit Operator.
]]></description><link>https://www.c-plusplus.net/forum/topic/354605/c-style-dll-schnittstelle-mit-c-cli-und-stringübergaben</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/topic/354605/c-style-dll-schnittstelle-mit-c-cli-und-stringübergaben</guid><dc:creator><![CDATA[Th69]]></dc:creator><pubDate>Thu, 28 Mar 2024 14:16:03 GMT</pubDate></item><item><title><![CDATA[Wie kann ich Daten in einer Datei teilweise ändern]]></title><description><![CDATA[@znieh99
um mit Niklaus Wirth (* 15. Februar 1934 in Winterthur; † 1. Januar 2024 in Zürich) zu antworten: Wahlfreier Zugriff (Random Access) findet nicht auf Dateiebene sondern im Hauptspeicher statt. Denn: Dateien sind Sequenzen, sie werden sequentiell gelesen und sequentiell geschrieben.
Das heißt: Lese den Dateiinhalt auf eine zweckmäßige Datenstruktur (Array, Liste, Map o.ä) und bearbeite diese. Anschließend schreibe diese Daten zurück in die Sequenz (Serialize). Die Frage ist also, wie man abstrakte Datentypen in Sequenzen serialisiert und umgekehrt. Und aus OOP-Sicht könnte man die Daten im RAM als Objekte auffassen die dafür ihre eigenen Methoden bescheiben.
MFG
]]></description><link>https://www.c-plusplus.net/forum/topic/354569/wie-kann-ich-daten-in-einer-datei-teilweise-ändern</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/topic/354569/wie-kann-ich-daten-in-einer-datei-teilweise-ändern</guid><dc:creator><![CDATA[_ro_ro]]></dc:creator><pubDate>Sun, 03 Mar 2024 14:59:44 GMT</pubDate></item><item><title><![CDATA[Erstellen eines Datenbankdumps]]></title><description><![CDATA[@firefly sagte in Erstellen eines Datenbankdumps:

Dann kann man nur hoffen dass nie die Datenmengen in der Datenbank so groß werden, dass ein Dump länger als die 10s brauchen

Aktuell habe ich Daten seit dem 01.01.2023 drin - und das Backup dauert um die 200ms. Da habe ich schon noch Luft nach oben 
@DocShoe: Das mit dem Formular habe ich mir auch schon überlegt. Ich werde das mal in Angriff nehmen. Ganz so kritisch ist das aber nicht - bislang haben wir das Backup noch nie gebraucht, und selbst wenn mal eines verloren geht, ist das auch nicht die Welt... Obwohl, nach Murphys Gesetz...
]]></description><link>https://www.c-plusplus.net/forum/topic/354515/erstellen-eines-datenbankdumps</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/topic/354515/erstellen-eines-datenbankdumps</guid><dc:creator><![CDATA[uvbey]]></dc:creator><pubDate>Sat, 10 Feb 2024 08:23:25 GMT</pubDate></item><item><title><![CDATA[Einen vector in einer Klasse definieren]]></title><description><![CDATA[@znieh99 sagte in Einen vector in einer Klasse definieren:

C++ mit Visual Studio 2022 und Windows Forms- Anwendungen von Richard Kaiser

Jo und da haben wir den Mist.

Da ich immer mal wieder gefragt werde, ob und wie man C++ in Verbindung mit C#, .NET Framework und .NET verwenden kann, hier eine kurze Einführung.

Quelle: https://link.springer.com/book/10.1007/978-3-662-65257-2
Das Buch ist per se sehr unglücklich. Erst eine Einführung in C++17 und dann kommt ein Spruch der Form &quot;C++ in Verbindung mit C#, .NET Framework und .NET verwenden&quot;.
Ich frage mich wohl wie der folgende Code in C++/CLI aussieht:
#include &lt;string&gt;


constexpr bool EvenLen(std::string_view s)
{
	return (s.length() % 2 != 0);
}

int main(int argc, char* argv[]) 
{
	static_assert(EvenLen(&quot;Hallo Welt&quot;), &quot;String muss eine gerade Laenge aufweisen!&quot;);
	static_assert(EvenLen(&quot;Hallo Welt2&quot;), &quot;String muss eine gerade Laenge aufweisen!&quot;);
}

Der Code muss man unter Visual Studio 2019 gar nicht kompilieren. Nachdem man den Code gespeichert hat, zeigt die IDE automatisch bei der ersten static_assert Anweisung einen Kringel an. Geht man mit dem Mauscursor drüber, so erscheint die Meldung &quot;String muss eine gerade Laenge aufweisen!&quot;.
Spiele ruhig mal damit rum! Verändere die Länge des Strings!
]]></description><link>https://www.c-plusplus.net/forum/topic/354511/einen-vector-in-einer-klasse-definieren</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/topic/354511/einen-vector-in-einer-klasse-definieren</guid><dc:creator><![CDATA[Quiche Lorraine]]></dc:creator><pubDate>Wed, 31 Jan 2024 07:41:16 GMT</pubDate></item><item><title><![CDATA[Problem mit Berechnung mit int und float]]></title><description><![CDATA[Hab es jetz so zum laufen gebracht:
    double iconHeight = (chHeight - (2 * marginItem)) * Config.EpgFskGenreIconSize * 100.0f;
    // flatPlus: iconHeight: 26,500000, EpgFskGenreIconSize: 0,500000 chHeight: 63
    

]]></description><link>https://www.c-plusplus.net/forum/topic/354415/problem-mit-berechnung-mit-int-und-float</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/topic/354415/problem-mit-berechnung-mit-int-und-float</guid><dc:creator><![CDATA[MegaV0lt]]></dc:creator><pubDate>Mon, 27 Nov 2023 10:33:06 GMT</pubDate></item><item><title><![CDATA[C++ community is a vibrant and diverse group]]></title><description><![CDATA[The C++ community is a vibrant and diverse group of people who share a passion for programming and problem-solving. They are constantly working to improve and enhance the language and its ecosystem. They also provide valuable services and resources to help other developers learn and use C++. The C++ community service update for 2023 reflects their dedication and commitment to making C++ a better language for everyone. Read more here: Lil Tjay Net Worth
]]></description><link>https://www.c-plusplus.net/forum/topic/354304/c-community-is-a-vibrant-and-diverse-group</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/topic/354304/c-community-is-a-vibrant-and-diverse-group</guid><dc:creator><![CDATA[Nishat79]]></dc:creator><pubDate>Fri, 15 Sep 2023 12:08:49 GMT</pubDate></item><item><title><![CDATA[Arbeiten mit dem std::filesystem() unter Linux und Windows.]]></title><description><![CDATA[@Ingolf_008 sagte in Arbeiten mit dem std::filesystem() unter Linux und Windows.:

Jetzt habe ich im Kurs gelernt, ich kann den aktuellen Verzeichnispfad seit c++ 17 über: std::filesystem::path(input_path)... bekommen.

Den aktuellen Pfad bekommst du über std::filesystem::current_path. Mit std::filesystem::path(input_path) bekommst du das was input_path representiert - das kann ein relativer oder absoluter Pfad sein.

Wie macht Ihr sowas, wenn Ihr unter Windoof den aktuellen Pfad haben wollt? Über Anregungen würde ich mich freuen, Gruß Ingolf

Je nach Anwendungsfall std::filesystem::current_path oder GetCurrentDirectoryW, selten GetCurrentDirectoryA.
]]></description><link>https://www.c-plusplus.net/forum/topic/354248/arbeiten-mit-dem-std-filesystem-unter-linux-und-windows</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/topic/354248/arbeiten-mit-dem-std-filesystem-unter-linux-und-windows</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Mon, 14 Aug 2023 19:44:34 GMT</pubDate></item><item><title><![CDATA[Softwareentwickler IHK.]]></title><description><![CDATA[@DocShoe sagte in Softwareentwickler IHK.:

Auf die Stellenausschreibung als Fachinformatiker - Anwendungsentwicklung hat ein Kandidat im Bewerbungsgespräch (sinngemäß) das hier gesagt:
&quot;Eigentlich habe ich keinen Bock auf den Job, ich will mich als Leiter einer Softwareentwicklungs-Firma selbständig machen. Und damit ich genau weiß, was meine Angestellten dann so machen, möchte ich mir einen Einblick in den Beruf verschaffen.&quot;
Das kannste dir nicht ausdenken.

Allerdings ist Ehrlichkeit auch eine Tugend.
]]></description><link>https://www.c-plusplus.net/forum/topic/354024/softwareentwickler-ihk</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/topic/354024/softwareentwickler-ihk</guid><dc:creator><![CDATA[It0101]]></dc:creator><pubDate>Thu, 13 Apr 2023 15:27:29 GMT</pubDate></item><item><title><![CDATA[Wie Delegaten für WinForms Instanz formulieren?]]></title><description><![CDATA[Meinst du das?
 void f1(A1::Form1^ form1)
  {
  String^ s = &quot;nachher&quot;;
  form1-&gt;newTxt(s);
  }

void A1::Form1::SomeEvent(System::Object^ s, System::EventArgs^ e)
  {
  String^ st = &quot;vorher&quot;;
  A1::Form1::newTxt(st);    // o.k.
  Refresh();
  f1(this);
  }

]]></description><link>https://www.c-plusplus.net/forum/topic/353908/wie-delegaten-für-winforms-instanz-formulieren</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/topic/353908/wie-delegaten-für-winforms-instanz-formulieren</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Sun, 19 Feb 2023 00:52:04 GMT</pubDate></item><item><title><![CDATA[Anwendung startet nicht]]></title><description><![CDATA[Du hast vermutlich kein Problem mit deinem Icon. Du hast ein Problem mit deinem Quellcode, der vermutlich auf Speicher zugreift, der ihm nicht gehört. An deiner Stelle würde ich mal zuerst im Code suchen. Insbesondere dort wo du mit Pointern arbeitest. Falls der Code nicht so groß ist, kannst du den auch gern hier posten ( nur die relevanten Teile ).
]]></description><link>https://www.c-plusplus.net/forum/topic/353744/anwendung-startet-nicht</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/topic/353744/anwendung-startet-nicht</guid><dc:creator><![CDATA[It0101]]></dc:creator><pubDate>Tue, 10 Jan 2023 05:58:46 GMT</pubDate></item><item><title><![CDATA[Mit VS2022 ein C++&#x2F;CLI-Forms Projekt neu anlegen]]></title><description><![CDATA[@hkdd sagte in Mit VS2022 ein C++/CLI-Forms Projekt neu anlegen:

einen guten Rutsch in ein hoffentlich friedliches und erfolgreiches Neues Jahr 2023  

Danke, ebenfalls 
]]></description><link>https://www.c-plusplus.net/forum/topic/353756/mit-vs2022-ein-c-cli-forms-projekt-neu-anlegen</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/topic/353756/mit-vs2022-ein-c-cli-forms-projekt-neu-anlegen</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Thu, 29 Dec 2022 00:09:59 GMT</pubDate></item><item><title><![CDATA[Klassen verwalten Klassen]]></title><description><![CDATA[Hi @thewizardofoz,
Na ja, was ist &quot;übertrieben Objektorientiert&quot;? Um sich die &quot;objektorientierte Denkweise anzueignen&quot; sollte man sich die drei Teilbereiche OOA/OOD und OOP einzeln anschauen.
Das Ihr ein C++ Projekt mit Klassen (OOP) erstellen sollt, hat doch sicherlich eine Vorlauf (OOA/OOD) gehabt? Oder wie seid Ihr auf die einzelnen Klassen gekommen?
Wenn Ihr dass schon nicht hattet, solltet Ihr doch zumindest einige Grunderfahrung in C++ haben, zumindest schon, wie man Klassen programmiert.
Und wie sehen denn die Anforderungen aus, habt ihr die denn schon erarbeitet? Eine Frage wäre, wenn z.B. Autos angelegt werden sollen, sollen die nur für einen Programmlauf existieren oder sollen die nach einem Neustart wieder verfügbar sein (speichern?).
Du brauchst also dedizierte  Anforderungen die u.A. auch Prozessabläufe festlegen, wie z.B. &quot;Es müssen Autos mit seine Attributen über eine Eingabemaske angelegt/gesucht/geändert/gelöscht werden können. Ein Löschen darf nur möglich sein, wenn nicht ...dies und das.
Fang also mit dem an, ohne das andere nicht funktioniert; m.M. das Auto.
Zu Deinen Fragen:
Eine Klasse nur mit Methoden würde ich nicht bauen, sondern einen Namespace benutzen.
Um ein Objekt der Klasse Buchung, die wohl so einige Attribute wie Datum, Referenz auf das zu buchende Auto etc. haben könnte, zu verwalten brauchst Du wie schon von Dir angedeutet, eine Buchungs-Verwaltungsklasse, einen Namen solltest Du dir noch ausdenken. Diese braucht keine speziellen Konstruktor, aber wohl so was wie eine Liste der Buchungen und Methoden diese Buchungen zu generieren/bearbeiten/stornieren etc. Auch wäre es schön, eine Auto für eine Buchung auswählen zu können, dafür wäre so was wie eine Autoverwaltungsklasse schön, die mir einfach mal die Autos anbietet u.s.w. Die Auto-Verwaltungsklasse wird dann nicht nur zum bearbeiten von Autos genutzt, sondern auch von der Buchungsverwaltungsklasse.
Wenn im weiteren Verlauf schon bekannt ist, dass Autos mit ihren Buchungen angezeigt werden sollen, ist eine Entscheidung fällig, ob ich bei der Anzeige eines Autos die Buchungen durchsuche, um diese anzuzeigen, oder gleich beim Anlegen einer Buchung im referenzierten Auto, nicht gleich eine Gegenreferenz von Nöten ist.
Noch ein Tip, mal die die Klassen auf und ziehe Verbindungen zwischen diese, welche Klasse Objekte anderer Klassen kennen muss, um arbeiten zu können.
Jede Klasse sollte nur sie selbst betreffende Attribute haben.
Jede Klasse sollte nur die Methoden haben, die sie selbst betreffen.
Auch eine Bearbeitungsmaske sollte eine Klasse sein, sie sollte Methoden der zu Bearbeitenden Klasse/n nutzen (stell Dir vor, du brauchst später eine andere Bearbeitungsmaske, die willst du doch nicht gänzlich neu Programmieren).
Sogar das Programm (Application) kann eine Klasse sein, die in der main aufgerufen wird.
Ich bin mir nicht sicher, ob das Dir hilft, stelle dann einfach spezifischere Fragen.
]]></description><link>https://www.c-plusplus.net/forum/topic/353737/klassen-verwalten-klassen</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/topic/353737/klassen-verwalten-klassen</guid><dc:creator><![CDATA[Helmut.Jakoby]]></dc:creator><pubDate>Sun, 18 Dec 2022 13:55:04 GMT</pubDate></item><item><title><![CDATA[Forms control member as variable]]></title><description><![CDATA[Hallo Forum,
in u.a. Code möchte ich eine ProgressBar aus einem Thread aufrufen. Der Code funktioniert so. Frage ist, ob es noch eine etwas elegantere Lösung gibt. Die ProgressBar ohne Delegate aufzurufen funktioniert nicht.
Außerdem möchte ich den Member 'Show' der ProgressBar als Variable übergeben. Lässt sich dafür das Object^ in BeginInvoke verwenden?
public ref class Form1 : public System::Windows::Forms::Form
{
...
public: array&lt;ProgressBar^&gt;^ pBars = {progressBar1, ... , progressBar3};
...
private: System::Void button2_Click(System::Object^ sender, System::EventArgs^ e) {
    tasks[0] = Task::Factory-&gt;StartNew((Action&lt;Object^&gt;^)gcnew Action&lt;Object^&gt;(this, &amp;Form1::TaskMethod), _inputParameter, cts-&gt;Token);
}

private: System::Void TaskMethod(Object^ data) {
    int i= 0;
    ProgressBarDelegate^ d = gcnew ProgressBarDelegate(_instance, &amp;Form1::setProgressBar);
    pBars[i]-&gt;BeginInvoke(d, gcnew array&lt;Object^&gt; { i });
...
while(true){
...
token.WaitHandle-&gt;WaitOne(delay);
}
}
private: System::Void Form1::setProgressBar(int i)
{
    pBars[ i ]-&gt;Show();
}
};

]]></description><link>https://www.c-plusplus.net/forum/topic/353665/forms-control-member-as-variable</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/topic/353665/forms-control-member-as-variable</guid><dc:creator><![CDATA[Mat28]]></dc:creator><pubDate>Fri, 18 Nov 2022 17:26:52 GMT</pubDate></item><item><title><![CDATA[ATL und CImage nach Update VS2022 V17.4.0 nicht mehr vorhanden]]></title><description><![CDATA[@SeppJ, Danke für diesen Tip - ich habe so etwas vermutet - jetzt ist alles wieder OK.
]]></description><link>https://www.c-plusplus.net/forum/topic/353655/atl-und-cimage-nach-update-vs2022-v17-4-0-nicht-mehr-vorhanden</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/topic/353655/atl-und-cimage-nach-update-vs2022-v17-4-0-nicht-mehr-vorhanden</guid><dc:creator><![CDATA[hkdd]]></dc:creator><pubDate>Mon, 14 Nov 2022 16:05:05 GMT</pubDate></item><item><title><![CDATA[Native Funktion mit managed Pointer aufrufen]]></title><description><![CDATA[Hallo Forum,
habe in einem Mixed-Mode Projekt die Aufgabe, einer nativen externen Funktion einer DLL einen Pointer zu einer managed Funktion zu übergeben.
Ich hab also eine Funktion, die Member von Form1 ist;
private: int func(uint16 wert){
...
return 1;
}

Dann habe ich einen  Funktionsaufruf
nativeStruct.instance[param] = &amp;func;

So kann es natürlich nicht funktionieren.
Ich folgendes versucht:
int value = func(param);
//Form1^ newPtr = gcnew Form1();
//newPtr-&gt;func(param);
pin_ptr&lt;int&gt; pinPtr = &amp;value;							
int* nativePtr = pinPtr;

oder
decltype (auto) fp = gcnew funcProc(this, &amp;Form1::func);
IntPtr delegatePointer = Marshal::GetFunctionPointerForDelegate(fp);

nativeClass.instance[param] = reinterpret_cast&lt;int(*)(uint16 param)&gt;(delegatePointer.ToPointer());

Das kompiliert aber erzeugt den Fehler &quot;Runtime Check Fehler #0&quot; -&gt; calling convention mismatch.
Irgendwie komme ich nicht weiter. Wer kann einen Tip geben?
M.
]]></description><link>https://www.c-plusplus.net/forum/topic/353592/native-funktion-mit-managed-pointer-aufrufen</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/topic/353592/native-funktion-mit-managed-pointer-aufrufen</guid><dc:creator><![CDATA[Mat28]]></dc:creator><pubDate>Wed, 19 Oct 2022 12:01:48 GMT</pubDate></item><item><title><![CDATA[Problem beim Ausführen]]></title><description><![CDATA[Hallo, ich weiß nicht,  warum mein Programm nicht ausgeführt wird. Könnt ihr mir bitte dabei helfen?
#include &lt;iostream&gt;

using namespace std;

    main(void)
{
    string E = &quot;Theo, &quot;;
    string D = &quot;, Luis.&quot;;      
    string C = &quot;Leo, &quot;; 
    string A = &quot;Menko, &quot;;
    string B = &quot;Sara, &quot;;     
    cout &lt;&lt; &quot;Deine Familie hat die folgenden Namen:&quot; &lt;&lt;A &lt;&lt;B &lt;&lt;C &lt;&lt;D &lt;&lt;E &lt;&lt;&quot;.&quot; &lt;&lt;endl
         &lt;&lt; &quot;wie heisst du denn?&quot; &lt;&lt;endl;
         cin.get();
         cin.sync();
         string ich;
    cin &gt;&gt; ich;
        cin.sync();
        
        cout &lt;&lt;&quot;Ich heiße&quot; &lt;&lt;ich &lt;&lt;&quot;.&quot;;
    cin.get();
}


]]></description><link>https://www.c-plusplus.net/forum/topic/353590/problem-beim-ausführen</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/topic/353590/problem-beim-ausführen</guid><dc:creator><![CDATA[MaxDerNeue]]></dc:creator><pubDate>Tue, 18 Oct 2022 07:47:17 GMT</pubDate></item><item><title><![CDATA[Ein Header in merere Forms einbinden ??]]></title><description><![CDATA[Dank eurer Denkanstöße habe ich es geschafft, das Problem zu lösen! Als Erstes habe ich die Vorkompilierten Header abgeschaltet und die Pch.h include entfernt. Dadurch waren die Fehlermeldungen verschwunden, aber die Methoden funktionierten noch nicht. Da habe ich die Incldudes in die Cpp Datei kopiert und völlig aus der Header entfernt! In den Form1 und Form 2 steht nur noch meineForm.h. Alles läuft jetzt wie geplant. Ich gebe dennoch den Quellcode bekannt für andere, die demselben Problem gegenüberstehen.
Form1
#include &quot;meinPaket.h&quot;


namespace Frm1 {

  using namespace System;
  using namespace System::ComponentModel;
  using namespace System::Collections;
  using namespace System::Windows::Forms;
  using namespace System::Data;
  using namespace System::Drawing;

  
  public ref class Form1 : public System::Windows::Forms::Form
  {
  public:
    Form1(void)
    {
      InitializeComponent();
    }

  protected:   
    ~Form1()
    {
      if (components)
      {
        delete components;
      }
    }
  private: System::Windows::Forms::Button^ btn_1;
  private: System::Windows::Forms::TextBox^ tb1;

  private:
    System::ComponentModel::Container^ components;

#pragma region Windows Form Designer generated code    
    void InitializeComponent(void)
    {
        this-&gt;btn_1 = (gcnew System::Windows::Forms::Button());
        this-&gt;tb1 = (gcnew System::Windows::Forms::TextBox());
        this-&gt;SuspendLayout();
        // 
        // btn_1
        // 
        this-&gt;btn_1-&gt;Location = System::Drawing::Point(89, 80);
        this-&gt;btn_1-&gt;Name = L&quot;btn_1&quot;;
        this-&gt;btn_1-&gt;Size = System::Drawing::Size(75, 23);
        this-&gt;btn_1-&gt;TabIndex = 0;
        this-&gt;btn_1-&gt;Text = L&quot;button1&quot;;
        this-&gt;btn_1-&gt;UseVisualStyleBackColor = true;
        this-&gt;btn_1-&gt;Click += gcnew System::EventHandler(this, &amp;Form1::btn_1_Click);
        // 
        // tb1
        // 
        this-&gt;tb1-&gt;Location = System::Drawing::Point(111, 171);
        this-&gt;tb1-&gt;Name = L&quot;tb1&quot;;
        this-&gt;tb1-&gt;Size = System::Drawing::Size(100, 20);
        this-&gt;tb1-&gt;TabIndex = 1;
        // 
        // Form1
        // 
        this-&gt;AutoScaleDimensions = System::Drawing::SizeF(6, 13);
        this-&gt;AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
        this-&gt;ClientSize = System::Drawing::Size(284, 261);
        this-&gt;Controls-&gt;Add(this-&gt;tb1);
        this-&gt;Controls-&gt;Add(this-&gt;btn_1);
        this-&gt;Name = L&quot;Form1&quot;;
        this-&gt;Text = L&quot;Form1&quot;;
        this-&gt;ResumeLayout(false);
        this-&gt;PerformLayout();

    }
  private: System::Void btn_1_Click(System::Object^ sender, System::EventArgs^ e) {
      Paket::loadForm();
      Paket::test(tb1);
  }
  }; // end of class Form1
} // end of namespace Frm1

Form2
#include &quot;meinPaket.h&quot;


namespace Frm2 {

	using namespace System;
	using namespace System::ComponentModel;
	using namespace System::Collections;
	using namespace System::Windows::Forms;
	using namespace System::Data;
	using namespace System::Drawing;

	
	public ref class Form2 : public System::Windows::Forms::Form
	{
	public:
		Form2(void)
		{
			InitializeComponent();
			
		}

	protected:
	
		~Form2()
		{
			if (components)
			{
				delete components;
			}
		}
	private: System::Windows::Forms::Button^ btn_2;
	private: System::Windows::Forms::TextBox^ tb2;

	private:
		
		System::ComponentModel::Container ^components;

#pragma region Windows Form Designer generated code
		
		void InitializeComponent(void)
		{
			this-&gt;btn_2 = (gcnew System::Windows::Forms::Button());
			this-&gt;tb2 = (gcnew System::Windows::Forms::TextBox());
			this-&gt;SuspendLayout();
			// 
			// btn_2
			// 
			this-&gt;btn_2-&gt;Location = System::Drawing::Point(95, 120);
			this-&gt;btn_2-&gt;Name = L&quot;btn_2&quot;;
			this-&gt;btn_2-&gt;Size = System::Drawing::Size(75, 23);
			this-&gt;btn_2-&gt;TabIndex = 0;
			this-&gt;btn_2-&gt;Text = L&quot;button1&quot;;
			this-&gt;btn_2-&gt;UseVisualStyleBackColor = true;
			this-&gt;btn_2-&gt;Click += gcnew System::EventHandler(this, &amp;Form2::btn_2_Click);
			// 
			// tb2
			// 
			this-&gt;tb2-&gt;Location = System::Drawing::Point(104, 219);
			this-&gt;tb2-&gt;Name = L&quot;tb2&quot;;
			this-&gt;tb2-&gt;Size = System::Drawing::Size(100, 20);
			this-&gt;tb2-&gt;TabIndex = 1;
			// 
			// Form2
			// 
			this-&gt;AutoScaleDimensions = System::Drawing::SizeF(6, 13);
			this-&gt;AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
			this-&gt;ClientSize = System::Drawing::Size(284, 261);
			this-&gt;Controls-&gt;Add(this-&gt;tb2);
			this-&gt;Controls-&gt;Add(this-&gt;btn_2);
			this-&gt;Name = L&quot;Form2&quot;;
			this-&gt;Text = L&quot;Form2&quot;;
			this-&gt;ResumeLayout(false);
			this-&gt;PerformLayout();

		}
#pragma endregion
	private: System::Void btn_2_Click(System::Object^ sender, System::EventArgs^ e) {
		tb2-&gt;AppendText(Paket::pForm(this).ToString() + &quot;\r\n&quot;);
		
	}
	};
}

meinPaket.h
#pragma once


namespace Paket
{
	using namespace std;
	using namespace System;
	using namespace System::Windows::Forms;

	void loadForm();
	void loadForm2();
	int pForm(Form^ form);
	void test(TextBox^ a);
}

meinPaket.cpp
#include &quot;meinPaket.h&quot;
#include &quot;Form1.h&quot;
#include &quot;Form2.h&quot;


using namespace std;
using namespace System;
using namespace System::Windows::Forms;
using namespace Paket;


void Paket::loadForm()
{
	Frm2::Form2^ form = gcnew(Frm2::Form2);
	form-&gt;ShowDialog();
	delete form;	
}
//void Paket::loadForm2()
//{
//	Frm1::Form1^ form = gcnew(Frm1::Form1);
//	form-&gt;ShowDialog();
//	delete form;
//}

void Paket::test(TextBox^ a)
{
	a-&gt;AppendText(&quot;Huhu\r\n&quot;);
}

int Paket::pForm(Form^ form)
{
	int a = form-&gt;Width;
	return a;
}


So, das ist alles :). Ich hoffe, das wird so gemacht! Es funzt auf jeden Fall :). Für Kritik und Erklärungen bin ich gerne dankbar.
]]></description><link>https://www.c-plusplus.net/forum/topic/353566/ein-header-in-merere-forms-einbinden</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/topic/353566/ein-header-in-merere-forms-einbinden</guid><dc:creator><![CDATA[Gnaa77]]></dc:creator><pubDate>Thu, 06 Oct 2022 06:13:28 GMT</pubDate></item><item><title><![CDATA[dumpbin,data ist nicht gleich data?]]></title><description><![CDATA[hallo,
ist habe einen Textstring ...
#define zeichenkette &quot;larifarie&quot;

Wenn ich folgendes ausführe...

dumpbin /SECTION:.data /RAWDATA test.exe &gt;.data
...finde ich nicht kein larifarie drin

so aber schon...

dumpbin /RAWDATA test.exe &gt;.data2
warum?

]]></description><link>https://www.c-plusplus.net/forum/topic/353562/dumpbin-data-ist-nicht-gleich-data</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/topic/353562/dumpbin-data-ist-nicht-gleich-data</guid><dc:creator><![CDATA[tomycat2009]]></dc:creator><pubDate>Sun, 02 Oct 2022 08:51:36 GMT</pubDate></item></channel></rss>