<?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[Builder 6 - Exception Problem.]]></title><description><![CDATA[<p>Hi, ich habe ein kleines Probelm, beim Builder 6 und weis nicht mehr weiter.<br />
Und zwar möchte ich folgende Kalsse als Beispiel in meine Windows Anwendung einfügen.</p>
<pre><code class="language-cpp">class TMyClass
{
      private: 
          int a,b,c;
      public:
          int add(int,int,int) ;
};

int TMyClass::add(int d, int e, int f)
{

          a=d;
          b=e;
          c=f;
          return a+b+c
};
</code></pre>
<p>Nur wenn ich jetzt das Programm starte und mit folgendem aufruf meine Methode auführen will bekomme ich eine exception</p>
<pre><code class="language-cpp">TMyCalss *Class;
Edit1-&gt;Text=IntToStr(Class-&gt;add(1,2,3));
</code></pre>
<p>Dies ist nur ein Beispiel.<br />
Die Exception Luatet wie folgt.</p>
<blockquote>
<p>Project test.exe raised exception class EAccess Violation with Message 'Access vilation at Adress 00403A1D in module 'test.exe'. Write of Adress 550102EE'. Process Stopped. Use Step or run to continue.</p>
</blockquote>
<p><a href="http://hannesk.mine.nu/webcam/exception.JPG" rel="nofollow">http://hannesk.mine.nu/webcam/exception.JPG</a></p>
<p>Des weiteren habe ich gemerkt, wenn ich in die Klasse als Beispiel ein Feld mit den Dimensionen 120x160 :</p>
<pre><code class="language-cpp">int ergebnis[120][160]
</code></pre>
<p>erzeuge, der Builder aber ein Feld der Dimension 31555x160 aninmmt.<br />
<a href="http://hannesk.mine.nu/webcam/klassen_feld.JPG" rel="nofollow">http://hannesk.mine.nu/webcam/klassen_feld.JPG</a></p>
<p>Ich hoffe mir kann jemand dabei helfen.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/128384/builder-6-exception-problem</link><generator>RSS for Node</generator><lastBuildDate>Wed, 29 Jul 2026 11:25:56 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/128384.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 03 Dec 2005 10:51:16 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Builder 6 - Exception Problem. on Sat, 03 Dec 2005 11:01:11 GMT]]></title><description><![CDATA[<p>Hi, ich habe ein kleines Probelm, beim Builder 6 und weis nicht mehr weiter.<br />
Und zwar möchte ich folgende Kalsse als Beispiel in meine Windows Anwendung einfügen.</p>
<pre><code class="language-cpp">class TMyClass
{
      private: 
          int a,b,c;
      public:
          int add(int,int,int) ;
};

int TMyClass::add(int d, int e, int f)
{

          a=d;
          b=e;
          c=f;
          return a+b+c
};
</code></pre>
<p>Nur wenn ich jetzt das Programm starte und mit folgendem aufruf meine Methode auführen will bekomme ich eine exception</p>
<pre><code class="language-cpp">TMyCalss *Class;
Edit1-&gt;Text=IntToStr(Class-&gt;add(1,2,3));
</code></pre>
<p>Dies ist nur ein Beispiel.<br />
Die Exception Luatet wie folgt.</p>
<blockquote>
<p>Project test.exe raised exception class EAccess Violation with Message 'Access vilation at Adress 00403A1D in module 'test.exe'. Write of Adress 550102EE'. Process Stopped. Use Step or run to continue.</p>
</blockquote>
<p><a href="http://hannesk.mine.nu/webcam/exception.JPG" rel="nofollow">http://hannesk.mine.nu/webcam/exception.JPG</a></p>
<p>Des weiteren habe ich gemerkt, wenn ich in die Klasse als Beispiel ein Feld mit den Dimensionen 120x160 :</p>
<pre><code class="language-cpp">int ergebnis[120][160]
</code></pre>
<p>erzeuge, der Builder aber ein Feld der Dimension 31555x160 aninmmt.<br />
<a href="http://hannesk.mine.nu/webcam/klassen_feld.JPG" rel="nofollow">http://hannesk.mine.nu/webcam/klassen_feld.JPG</a></p>
<p>Ich hoffe mir kann jemand dabei helfen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/932927</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/932927</guid><dc:creator><![CDATA[bufanda]]></dc:creator><pubDate>Sat, 03 Dec 2005 11:01:11 GMT</pubDate></item><item><title><![CDATA[Reply to Builder 6 - Exception Problem. on Sat, 03 Dec 2005 11:06:24 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>Du must noch eine gültige Instanz der Klasse anlegen. Und du brauchst einen Konstruktor für die Klasse, der die Membervariablen der Instanz beim erzeugen auf z.b. 0 setzt</p>
<pre><code class="language-cpp">class TMyClass
{
      private:
          int a,b,c;
      public:
          int add(int,int,int) ;
          TMyClass(); // Konstruktor einfügen
};

// Implementation des Konstruktors mit Initialisierungsliste der Membervariablen
TMyClass::TMyClass() : a(0), b(0), c(0)
{
  }

...
TMyCalss *Class = new TMyClass(); // Instanz von TMyClass erzeugen
Edit1-&gt;Text=IntToStr(Class-&gt;add(1,2,3)); // Instanz verwenden
...
delete Class; // Instanz nach Gebrauch löschen
</code></pre>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/932934</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/932934</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Sat, 03 Dec 2005 11:06:24 GMT</pubDate></item><item><title><![CDATA[Reply to Builder 6 - Exception Problem. on Sat, 03 Dec 2005 11:40:19 GMT]]></title><description><![CDATA[<p>Du benötigst ein konkretes Objekt vom Typ MyClass, um eine Methode aufzurufen, nicht einen (mehr oder weniger) zufällig gelegenen Speicherbereich, den du als MyClass interpretierst (und das machst du mit dem uninitialisierten Zeiger):</p>
<pre><code class="language-cpp">MyClass *Class=new MyClass;//JETZT hast du ein Objekt
Edit1-&gt;Text=IntToStr(Class-&gt;add(1,2,3));
//...

delete Class;//Freigabe des Speichers
</code></pre>
<p>(btw, über den Sinn dieser Klasse rede ich lieber nicht - die Add-Methode wäre als Funktion geeigneter ;))</p>
<p>Edit: OK, ich war zu langsam <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/7971">@akari</a>: Default-Konstruktor ist nicht nötig, den stellt der Compiler notfalls selber bereit.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/932938</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/932938</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Sat, 03 Dec 2005 11:40:19 GMT</pubDate></item><item><title><![CDATA[Reply to Builder 6 - Exception Problem. on Sat, 03 Dec 2005 14:57:59 GMT]]></title><description><![CDATA[<p>Ok, das hatte ich mir auch schon gedacht, nur dann kommt eine Meldung vom Linker, und zwar.</p>
<blockquote>
<p>Unresolved external 'TMyClass::add(int,int,int)' referenced from MainTest.obj.</p>
</blockquote>
<p>MainTest ist nun der Source für meine Oberfläche, in der ich die Klasse nutzen möchte. Ich habe auch schon mit</p>
<pre><code class="language-cpp">extern *TMyClass MyClass
</code></pre>
<p>versucht, jedoch kam wieder der Fehler.</p>
<p>Der Zweck dahinter ist natürlich ein größeres Projekt, welches aber nun zu Umfangreich ist, um hier genauer auf gesschlüsselt zu werden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/933149</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/933149</guid><dc:creator><![CDATA[bufanda]]></dc:creator><pubDate>Sat, 03 Dec 2005 14:57:59 GMT</pubDate></item><item><title><![CDATA[Reply to Builder 6 - Exception Problem. on Sat, 03 Dec 2005 15:20:26 GMT]]></title><description><![CDATA[<p><a href="http://www.c-plusplus.net/forum/viewtopic.php?t=39193" rel="nofollow">FAQ</a></p>
<p>Gruß,</p>
<p>Alexander</p>
]]></description><link>https://www.c-plusplus.net/forum/post/933169</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/933169</guid><dc:creator><![CDATA[Alexander Kempf]]></dc:creator><pubDate>Sat, 03 Dec 2005 15:20:26 GMT</pubDate></item><item><title><![CDATA[Reply to Builder 6 - Exception Problem. on Sat, 03 Dec 2005 15:32:52 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>CStoll schrieb:</p>
<blockquote>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/7971">@akari</a>: Default-Konstruktor ist nicht nötig, den stellt der Compiler notfalls selber bereit.</p>
</blockquote>
<p>Ja... aber dann werden die Member-Variablen nicht initialisiert. Dann stehen in a,b und c irgendwelche Werte drinne, was bei der sinnfreien Methode auch nicht auffällt. Aber spätestens dann wenn die Methode z.B. so aussieht</p>
<pre><code class="language-cpp">int TMyClass::add(int d, int e, int f)
{

          a+=d;
          b+=e;
          c+=f;
          return a+b+c
};
</code></pre>
<p>fällt es auf. Also besser immer in einem Konstruktor die Member ordentlich initialisieren.</p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/933180</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/933180</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Sat, 03 Dec 2005 15:32:52 GMT</pubDate></item></channel></rss>