<?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[Zugriffsverletzung bei TForm::Update Anweisung]]></title><description><![CDATA[<p>Hiho,</p>
<p>hab da ma wieder nen Problem. *G*</p>
<p>Hab nen Programm mit 1 Form und div. dahinterliegenden CPP-Dateien.<br />
Das Form enthält Routinen zu div. logisch getrennten Schritten, deshalb für jede &quot;Logik&quot; 1 separate Datei mit jeweils einem eigenen Namespace.</p>
<p>Im Moment sieht es noch in etwa so aus:<br />
mainframe.cpp -&gt; Fenster<br />
master.cpp -&gt; Funktionalität &quot;Master&quot;<br />
staff.cpp -&gt; Funktionalität &quot;Staff&quot;<br />
Weitere folgen</p>
<p>...</p>
<p>Jetzt rufe ich vom Mainframe eine Start-Funktion aus den jeweiligen Dateien auf, z.B. &quot;Master::start();&quot;, das klappt auch wunderbar.<br />
In der Unterfunktion &quot;start&quot; im Namespace &quot;Master&quot; kann ich auch auf frmMain zugreifen und z.B. Textfelder auslesen.</p>
<p>Jetzt kommt das große aber:<br />
Möchte ich ein Update auf frmMain oder eines seiner Komponenten machen, bekomme ich eine Zugriffsverletzung.</p>
<pre><code class="language-cpp">frmMain-&gt;lblStaffStatus-&gt;Caption = message; // das funzt
frmMain-&gt;lblStaffStatus-&gt;Update();  // &lt;- das nicht
Application-&gt;ProcessMessages(); // das funzt auch
</code></pre>
<p>Ich hab leider keine Ahnung warum das nicht funktioniert.<br />
frmMain ist bekannt und auch richtig initialisiert, sonst könnte ich ja nich an dem Caption-Teil rumspielen, aber sobald ich ein Update fahre, fliegt er auf die Fresse.</p>
<p>Jetzt habe ich die Vermutung, dass das was damit zu tun hat, dass diese Funktion innerhalb des separaten Namespaces &quot;Master&quot; liegt und die Update-Funktion des Mainframes deshalb irgendwie durcheinander kommt.</p>
<p>Kann das sein?</p>
<p>Danke im Voraus</p>
<p>cu Patrick</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/209500/zugriffsverletzung-bei-tform-update-anweisung</link><generator>RSS for Node</generator><lastBuildDate>Thu, 20 Aug 2026 13:06:53 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/209500.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 31 Mar 2008 14:07:22 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Zugriffsverletzung bei TForm::Update Anweisung on Mon, 31 Mar 2008 14:07:41 GMT]]></title><description><![CDATA[<p>Hiho,</p>
<p>hab da ma wieder nen Problem. *G*</p>
<p>Hab nen Programm mit 1 Form und div. dahinterliegenden CPP-Dateien.<br />
Das Form enthält Routinen zu div. logisch getrennten Schritten, deshalb für jede &quot;Logik&quot; 1 separate Datei mit jeweils einem eigenen Namespace.</p>
<p>Im Moment sieht es noch in etwa so aus:<br />
mainframe.cpp -&gt; Fenster<br />
master.cpp -&gt; Funktionalität &quot;Master&quot;<br />
staff.cpp -&gt; Funktionalität &quot;Staff&quot;<br />
Weitere folgen</p>
<p>...</p>
<p>Jetzt rufe ich vom Mainframe eine Start-Funktion aus den jeweiligen Dateien auf, z.B. &quot;Master::start();&quot;, das klappt auch wunderbar.<br />
In der Unterfunktion &quot;start&quot; im Namespace &quot;Master&quot; kann ich auch auf frmMain zugreifen und z.B. Textfelder auslesen.</p>
<p>Jetzt kommt das große aber:<br />
Möchte ich ein Update auf frmMain oder eines seiner Komponenten machen, bekomme ich eine Zugriffsverletzung.</p>
<pre><code class="language-cpp">frmMain-&gt;lblStaffStatus-&gt;Caption = message; // das funzt
frmMain-&gt;lblStaffStatus-&gt;Update();  // &lt;- das nicht
Application-&gt;ProcessMessages(); // das funzt auch
</code></pre>
<p>Ich hab leider keine Ahnung warum das nicht funktioniert.<br />
frmMain ist bekannt und auch richtig initialisiert, sonst könnte ich ja nich an dem Caption-Teil rumspielen, aber sobald ich ein Update fahre, fliegt er auf die Fresse.</p>
<p>Jetzt habe ich die Vermutung, dass das was damit zu tun hat, dass diese Funktion innerhalb des separaten Namespaces &quot;Master&quot; liegt und die Update-Funktion des Mainframes deshalb irgendwie durcheinander kommt.</p>
<p>Kann das sein?</p>
<p>Danke im Voraus</p>
<p>cu Patrick</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1483798</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1483798</guid><dc:creator><![CDATA[Errraddicator]]></dc:creator><pubDate>Mon, 31 Mar 2008 14:07:41 GMT</pubDate></item><item><title><![CDATA[Reply to Zugriffsverletzung bei TForm::Update Anweisung on Mon, 31 Mar 2008 16:45:26 GMT]]></title><description><![CDATA[<p>Nein, an den Namespaces liegt das sicherlich nicht.<br />
Schau dir mal den CallStack (Aufrufstapel) bei der Exception an.</p>
<p>Hast du evtl. eigene OnPaint-Methoden, die dann den Fehler verursachen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1483920</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1483920</guid><dc:creator><![CDATA[Th69]]></dc:creator><pubDate>Mon, 31 Mar 2008 16:45:26 GMT</pubDate></item><item><title><![CDATA[Reply to Zugriffsverletzung bei TForm::Update Anweisung on Tue, 01 Apr 2008 07:18:54 GMT]]></title><description><![CDATA[<p>Hier mal ein Screenshot vom Stack:<br />
<a href="http://img442.imageshack.us/img442/572/stackrg8.png" rel="nofollow">http://img442.imageshack.us/img442/572/stackrg8.png</a></p>
<p>Sagt mir ehrlich gesagt nich all zu viel, woran es liegen könnte. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
<p>...</p>
<p>Eigene Paint-Methoden oder Ähnliches habe ich übrigens nicht, nein.<br />
Benutze in dem Formular nur Standardkomponenten ohne besondere Effekte oder Einstellungen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1484188</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1484188</guid><dc:creator><![CDATA[Errraddicator]]></dc:creator><pubDate>Tue, 01 Apr 2008 07:18:54 GMT</pubDate></item><item><title><![CDATA[Reply to Zugriffsverletzung bei TForm::Update Anweisung on Tue, 01 Apr 2008 08:50:11 GMT]]></title><description><![CDATA[<p>Dein CallStack zeigt ja, dass die Funktion StaffNumbers::startRefresh() den Fehler auslöst. Setze doch da mal einen Breakpoint und schau was passiert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1484237</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1484237</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Tue, 01 Apr 2008 08:50:11 GMT</pubDate></item><item><title><![CDATA[Reply to Zugriffsverletzung bei TForm::Update Anweisung on Tue, 01 Apr 2008 08:54:51 GMT]]></title><description><![CDATA[<p>Braunstein schrieb:</p>
<blockquote>
<p>Dein CallStack zeigt ja, dass die Funktion StaffNumbers::startRefresh() den Fehler auslöst. Setze doch da mal einen Breakpoint und schau was passiert.</p>
</blockquote>
<p>Ja, das ist ja die Funktion wo ich das Update() aufrufe.<br />
Bis dahin funktioniert ja alles und Kommentiere ich die Update()-Anweisung aus, läufts komplett durch (nur zeigt er mir dann logischerweise nix mehr auffem Bildschirm an, da das Textfeld nich aktualisiert wird).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1484241</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1484241</guid><dc:creator><![CDATA[Errraddicator]]></dc:creator><pubDate>Tue, 01 Apr 2008 08:54:51 GMT</pubDate></item><item><title><![CDATA[Reply to Zugriffsverletzung bei TForm::Update Anweisung on Tue, 01 Apr 2008 09:01:33 GMT]]></title><description><![CDATA[<p>Geh mit dem Debugger durch und schau dir den Inhalt deiner Variablen an. Dann wirst du schon sehen, warum hier eine Exception fliegt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1484243</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1484243</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Tue, 01 Apr 2008 09:01:33 GMT</pubDate></item><item><title><![CDATA[Reply to Zugriffsverletzung bei TForm::Update Anweisung on Tue, 01 Apr 2008 09:09:02 GMT]]></title><description><![CDATA[<p>Das ist mein Block der nicht funktioniert...</p>
<pre><code class="language-cpp">frmMain-&gt;lblStaffStatus-&gt;Caption = message; // das funzt
frmMain-&gt;lblStaffStatus-&gt;Update();  // &lt;- das nicht
Application-&gt;ProcessMessages(); // das funzt auch
</code></pre>
<p>Wäre frmMain oder wahlweise lblStaffStatus nicht richtig initialisiert o.ä. könnte ich ja schon nicht die Caption setzen, das funktioniert aber!<br />
Ich kann auch z.B. andere Textfelder auslesen (also per überwachte Ausdrücke o.Ä.) aber sobald ich ein Update() fahre machts Bumm.</p>
<p>Das is ja das Problem was ich habe, wäre frmMain nich initialisiert oder ich könnte gar nix damit machen, wäre es ja klar, aber es IST da und ich KANN damit alles machen, nur eben kein Update(). <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1484250</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1484250</guid><dc:creator><![CDATA[Errraddicator]]></dc:creator><pubDate>Tue, 01 Apr 2008 09:09:02 GMT</pubDate></item><item><title><![CDATA[Reply to Zugriffsverletzung bei TForm::Update Anweisung on Tue, 01 Apr 2008 09:11:45 GMT]]></title><description><![CDATA[<p>Zugriff auf einen nichtinitialisierten Speicherbereich erzeugt undefiniertes Verhalten. Undefiniert heißt, das alles passieren kann, auch das es funktioniert.<br />
Das bedeutet, die Tatsache dass frmMain-&gt;lblStaffStatus-&gt;Caption = message; keinen Fehler verursacht bedeutet nicht, dass frmMain oder lblStaffStatus nicht doch unitialisert sein können. Also schau dir die Zeiger an.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1484252</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1484252</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Tue, 01 Apr 2008 09:11:45 GMT</pubDate></item><item><title><![CDATA[Reply to Zugriffsverletzung bei TForm::Update Anweisung on Tue, 01 Apr 2008 09:18:52 GMT]]></title><description><![CDATA[<p>Braunstein schrieb:</p>
<blockquote>
<p>...Also schau dir die Zeiger an.</p>
</blockquote>
<p>mainframe.cpp -&gt; this = 00B1B1F0<br />
staffNumbers.cpp -&gt; frmMain = 00B1B1F0</p>
<p>Also da passt meiner Meinung nach alles...</p>
<p>Und wie gesagt, ich kann ja sogar Inhalt auslesen und diese werden mir korrekt angezeigt!<br />
Wäre der Zeiger ins Nirvana, könnte ich ja vielleicht was überschreiben, aber doch nix auslesen, oder?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1484258</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1484258</guid><dc:creator><![CDATA[Errraddicator]]></dc:creator><pubDate>Tue, 01 Apr 2008 09:18:52 GMT</pubDate></item><item><title><![CDATA[Reply to Zugriffsverletzung bei TForm::Update Anweisung on Tue, 01 Apr 2008 09:21:50 GMT]]></title><description><![CDATA[<p>Natürlich könntest du was auslesen. Solange der Speicherbereich nicht überschrieben wurde stehen da noch die alten Werte. Welchen Wert hat denn lblStaffStatus? Was ist eigentlich message?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1484261</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1484261</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Tue, 01 Apr 2008 09:21:50 GMT</pubDate></item><item><title><![CDATA[Reply to Zugriffsverletzung bei TForm::Update Anweisung on Tue, 01 Apr 2008 09:26:44 GMT]]></title><description><![CDATA[<p>mainframe.cpp<br />
this = 00B1B1F0<br />
lblStaffStatus = 00B0C360</p>
<p>staffNumbers.cpp<br />
frmMain = 00B1B1F0<br />
lblStaffStatus = 00B0C360</p>
<p>Fehlermeldung:<br />
&quot;Im Projekt ...exe ist eine Exception der der Klasse EAccessViolation mit der Meldung &quot;Zugriffsverletzung&quot; aufgetreten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1484269</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1484269</guid><dc:creator><![CDATA[Errraddicator]]></dc:creator><pubDate>Tue, 01 Apr 2008 09:26:44 GMT</pubDate></item><item><title><![CDATA[Reply to Zugriffsverletzung bei TForm::Update Anweisung on Tue, 01 Apr 2008 09:49:56 GMT]]></title><description><![CDATA[<p>Das sieht ok aus. Evtl. hast du vorher schon einen Speicherzugriffsfehler, der sich erst dann auswirkt. schau am besten mal deinen ganzen Code durch, ob du sowas erkennen kannst. Du kannst auch versuchen alle nicht relevanten teile auszukommentieren und schauen wann der Fehler nicht mehr auftritt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1484289</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1484289</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Tue, 01 Apr 2008 09:49:56 GMT</pubDate></item><item><title><![CDATA[Reply to Zugriffsverletzung bei TForm::Update Anweisung on Tue, 01 Apr 2008 14:19:12 GMT]]></title><description><![CDATA[<p>So, habs jetzt gelöst.<br />
Den Fehler versteh ich nach wie vor nich ganz aber ich hab zumindest ne Ahnung.</p>
<p>Das Problem war ich hatte vorher je Modul nur eine .CPP (und keine .H) Datei.<br />
D.h. ich hab in der Mainframe.h jeweils die &lt;Modul&gt;.cpp geladen und nicht die &lt;Modul&gt;.h.</p>
<p>Seitdem ich das Ganze gesplittet habe, in .CPP und .H Datei (wie es sich eigentlich gehört, aber ich war zu faul :D) klappts einwandfrei.</p>
<p>Schätze mal der kam durch das zig fache hin und her-importieren der Header / CPP-Dateien irgendwie durcheinander.</p>
<p>Danke nochmals <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1484542</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1484542</guid><dc:creator><![CDATA[Errraddicator]]></dc:creator><pubDate>Tue, 01 Apr 2008 14:19:12 GMT</pubDate></item><item><title><![CDATA[Reply to Zugriffsverletzung bei TForm::Update Anweisung on Tue, 01 Apr 2008 14:26:47 GMT]]></title><description><![CDATA[<p>Man inkludiert <strong>niemals</strong> cpp-Dateien. Da sind derartige Fehler (sowie alle Menge Linker-Fehler) vorprogrammiert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1484551</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1484551</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Tue, 01 Apr 2008 14:26:47 GMT</pubDate></item><item><title><![CDATA[Reply to Zugriffsverletzung bei TForm::Update Anweisung on Tue, 01 Apr 2008 14:42:42 GMT]]></title><description><![CDATA[<p>Joar ich sag ja: eigentlich is mir das bekannt, aber ich war zu faul... ^^<br />
Hätte aber niemals gedacht, dass das solche Auswirkungen hat, wenn ich ehrlich bin. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
<p>Naja man lernt nie aus, beim nächsten Mal weiß ich bescheid. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1484561</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1484561</guid><dc:creator><![CDATA[Errraddicator]]></dc:creator><pubDate>Tue, 01 Apr 2008 14:42:42 GMT</pubDate></item></channel></rss>