<?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[Standalone Exe]]></title><description><![CDATA[<p>Hi!<br />
Ich habe da ein Problem mit der FAQ (Standalone Exe). Ich mache es so wie es da steht. Wenn ich das Programm dann durchkompiliere und linke (Projekt-&gt;erstellen), dann läuft auch alles, und eine große EXE wird generiert. So weit so gut.<br />
Wenn ich dann aber das Programm aus der IDE heraus starte, bekomme ich eine AccessViolation (bei 0x00000020), und ich muss das Programm beenden (Start-&gt;Programm zurücksetzen). Wenn ich irgendeine Zeile im Code auskommentiere und dann nochmals starte, liegt die AccessViolation plötzlich in Adresse 0x00000008.<br />
Wenn ich die EXE nicht aus der IDE heraus starte, kommt ein Dialog, der mir sagt, dass mein Programm einen Fehler festgestellt hat und beendet werden muss.<br />
Mit Laufzeit-Packages und dynamischer RTL (auch ohne letztere!) kann ich das Programm allerdings problemlos starten. Ich habe jetzt auch mal alles in FormCreate und im Konstruktor der Form auskommentiert, aber das Problem bleibt bestehen.<br />
Was könnte das sein, und wie kann man es beseitigen? Danke im voraus für Antworten.</p>
<p>EDIT: Ach ja, ich benutze den BCB3.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/154128/standalone-exe</link><generator>RSS for Node</generator><lastBuildDate>Sun, 09 Aug 2026 10:56:17 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/154128.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 24 Jul 2006 16:58:52 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Standalone Exe on Mon, 24 Jul 2006 17:13:36 GMT]]></title><description><![CDATA[<p>Hi!<br />
Ich habe da ein Problem mit der FAQ (Standalone Exe). Ich mache es so wie es da steht. Wenn ich das Programm dann durchkompiliere und linke (Projekt-&gt;erstellen), dann läuft auch alles, und eine große EXE wird generiert. So weit so gut.<br />
Wenn ich dann aber das Programm aus der IDE heraus starte, bekomme ich eine AccessViolation (bei 0x00000020), und ich muss das Programm beenden (Start-&gt;Programm zurücksetzen). Wenn ich irgendeine Zeile im Code auskommentiere und dann nochmals starte, liegt die AccessViolation plötzlich in Adresse 0x00000008.<br />
Wenn ich die EXE nicht aus der IDE heraus starte, kommt ein Dialog, der mir sagt, dass mein Programm einen Fehler festgestellt hat und beendet werden muss.<br />
Mit Laufzeit-Packages und dynamischer RTL (auch ohne letztere!) kann ich das Programm allerdings problemlos starten. Ich habe jetzt auch mal alles in FormCreate und im Konstruktor der Form auskommentiert, aber das Problem bleibt bestehen.<br />
Was könnte das sein, und wie kann man es beseitigen? Danke im voraus für Antworten.</p>
<p>EDIT: Ach ja, ich benutze den BCB3.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1103329</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1103329</guid><dc:creator><![CDATA[WebFritzi]]></dc:creator><pubDate>Mon, 24 Jul 2006 17:13:36 GMT</pubDate></item><item><title><![CDATA[Reply to Standalone Exe on Tue, 25 Jul 2006 05:46:13 GMT]]></title><description><![CDATA[<p>Gibts im BCB3 schon CodeGuard? Falls ja, könntest du damit einen Fehler finden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1103551</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1103551</guid><dc:creator><![CDATA[Morris Szyslak]]></dc:creator><pubDate>Tue, 25 Jul 2006 05:46:13 GMT</pubDate></item><item><title><![CDATA[Reply to Standalone Exe on Tue, 25 Jul 2006 09:05:24 GMT]]></title><description><![CDATA[<p>Nein, gibt es leider nicht... Auch das Löschen aller obj-Dateien bringt nüscht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1103628</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1103628</guid><dc:creator><![CDATA[WebFritzi]]></dc:creator><pubDate>Tue, 25 Jul 2006 09:05:24 GMT</pubDate></item><item><title><![CDATA[Reply to Standalone Exe on Tue, 25 Jul 2006 09:09:43 GMT]]></title><description><![CDATA[<p>Ohne weitere Infos schwer zu sagen. Verwendest Du Fremdkomponenten? DLLs? Sonst irgendetwas außergewöhnliches?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1103633</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1103633</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Tue, 25 Jul 2006 09:09:43 GMT</pubDate></item><item><title><![CDATA[Reply to Standalone Exe on Tue, 25 Jul 2006 09:24:17 GMT]]></title><description><![CDATA[<p>Joe_M. schrieb:</p>
<blockquote>
<p>Ohne weitere Infos schwer zu sagen.</p>
</blockquote>
<p>Ich finde, ich habe schon ne Menge erzählt... <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="😉"
    /> Aber wahrscheinlich ahst du recht.</p>
<p>Joe_M. schrieb:</p>
<blockquote>
<p>Verwendest Du Fremdkomponenten? DLLs? Sonst irgendetwas außergewöhnliches?</p>
</blockquote>
<p>Keine Fremdkomponenten, aber meine eigenen. Zwei Stück: TLinkLabel und TColorButton. Sind beide auf meiner Homepage einsehbar. Die H-Dateien der beiden sind im Include-Verzeichnis. Im BIN-Verzeichnis sind die bpi- und bpl-Dateien vorhanden, und im LIB-Verzeichnis habe ich die dcr- und lib-Dateien abgelegt.</p>
<p>Noch ne Info (sehr merkwürdiges Verhalten): Vorgestern noch war es wie folgt: Das gleiche Problem existierte, allerdings ließ es sich leicht beheben. Nach dem Auskommentieren folgender Zeile</p>
<pre><code class="language-cpp">BlendForm(this, true, 200);
</code></pre>
<p>hat er kompiliert, gelinkt und gestartet. Ohne Probleme. Dann habe ich den Kommentar vor der Zeile wieder weggemacht, und es lief entgegen aller Erwartungen immernoch. Das habe ich ein paarmal so machen können. Auch gestern. Seit einiger Zeit geht es aber eben nicht mehr so. Die Funktion BlendForm() ist wie folgt definiert:</p>
<pre><code class="language-cpp">void __fastcall BlendForm(TForm* Form, bool in, int ms)
{
   HMODULE hDll = LoadLibrary(&quot;User32.dll&quot;);
   if(hDll)
   {
      PTR_AW AnimateWindow = (PTR_AW)GetProcAddress(hDll, TEXT(&quot;AnimateWindow&quot;));

      if(AnimateWindow)
      {
         DWORD dwFlags = in ? AW_CENTER : AW_CENTER|AW_HIDE;
         AnimateWindow(Form-&gt;Handle, (DWORD)ms, dwFlags);
      }
      else
         throw(&quot;No Proc&quot;);

      FreeLibrary(hDll);
   }
   else
      throw(&quot;No Lib&quot;);
}
</code></pre>
<p>Ich bin aber wirklich nicht sicher, ob es an dieser Funktion liegt. Wie gesagt kommentiere ich die Zeile ja aus, und es funktioniert immernoch nicht...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1103640</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1103640</guid><dc:creator><![CDATA[WebFritzi]]></dc:creator><pubDate>Tue, 25 Jul 2006 09:24:17 GMT</pubDate></item><item><title><![CDATA[Reply to Standalone Exe on Tue, 25 Jul 2006 09:47:30 GMT]]></title><description><![CDATA[<p>Im Konstruktor deines TLinkLabels reservierst du Speicher, der offenbar nicht wieder freigegeben wird =&gt; Destruktor.<br />
Außerdem versuchst du, in den Settern eben dieser Eigenschaften nochmal Speicher zu allokieren, falls deren Zeiger Null ist. Laß das lieber bleiben, dafür ist der Konstruktor da.</p>
<p>Ich hatte mal ein Problem bei einer Komponente. Dabei ist beim Platzieren der Komponente die IDE abgestürzt. Ursache war ein</p>
<pre><code>if (Zeiger) {delete Zeiger;Zeiger=NULL;}
</code></pre>
<p>im Destruktor. Einfaches delete hat dann funktioniert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1103664</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1103664</guid><dc:creator><![CDATA[Morris Szyslak]]></dc:creator><pubDate>Tue, 25 Jul 2006 09:47:30 GMT</pubDate></item><item><title><![CDATA[Reply to Standalone Exe on Tue, 25 Jul 2006 10:11:12 GMT]]></title><description><![CDATA[<p>Morris Szyslak schrieb:</p>
<blockquote>
<p>Im Konstruktor deines TLinkLabels reservierst du Speicher, der offenbar nicht wieder freigegeben wird =&gt; Destruktor.</p>
</blockquote>
<p>Oh Gott, ja. Das sehe ich jetzt erst. Aber ich meine mich zu erinnern, dass sich der BCB selber darum kümmert, VCL-Komponenten wieder freizugeben.</p>
<p>Morris Szyslak schrieb:</p>
<blockquote>
<p>Außerdem versuchst du, in den Settern eben dieser Eigenschaften nochmal Speicher zu allokieren, falls deren Zeiger Null ist. Laß das lieber bleiben, dafür ist der Konstruktor da.</p>
</blockquote>
<p>OK, ich sehe die Unsinnigkeit. Der Zeiger wird ja nie NULL werden. Aber das ist sicher nicht das große Problem.</p>
<p>EDIT: Habe gerade mal ein neues Projekt mit nur einem TLinkLabel erstellt. Das Erstellen und Starten einer Standalone Exe klappt. Also ist das TLinkLabel nicht das Problem.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1103683</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1103683</guid><dc:creator><![CDATA[WebFritzi]]></dc:creator><pubDate>Tue, 25 Jul 2006 10:11:12 GMT</pubDate></item><item><title><![CDATA[Reply to Standalone Exe on Tue, 25 Jul 2006 11:28:55 GMT]]></title><description><![CDATA[<p>WebFritzi schrieb:</p>
<blockquote>
<p>Aber ich meine mich zu erinnern, dass sich der BCB selber darum kümmert, VCL-Komponenten wieder freizugeben.</p>
</blockquote>
<p>Das ist ein Irrtum.</p>
<p>BCB-Hilfe schrieb:</p>
<blockquote>
<p>Wenn Sie Ihrer Komponente Klassen hinzufügen, muß sie der Konstruktor initialisieren, damit der Benutzer zur Laufzeit mit den Objekten interagieren kann. Der Destruktor der Komponente muß dagegen die untergeordneten Objekte freigeben, bevor er die Komponente selbst freigibt.</p>
</blockquote>
<p>Verwechsel das nicht mit der Eigenschaft Owner von TComponent.</p>
<p>Kannst ja spaßeshalber mal deine eigenen Komponenten entfernen und sehen, ob dann das Problem immernoch auftritt. Falls, ja liegt es wirklich nicht am TLinkLabel. An sonsten würde ich aus dem Funktionieren einer sonst leeren Anwendung keine voreiligen Schlüsse ziehen <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1103735</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1103735</guid><dc:creator><![CDATA[Morris Szyslak]]></dc:creator><pubDate>Tue, 25 Jul 2006 11:28:55 GMT</pubDate></item><item><title><![CDATA[Reply to Standalone Exe on Tue, 25 Jul 2006 12:32:31 GMT]]></title><description><![CDATA[<p>OK, ich werd's heute abend mal ausprobieren. Momentan bin ich leider woanders...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1103801</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1103801</guid><dc:creator><![CDATA[WebFritzi]]></dc:creator><pubDate>Tue, 25 Jul 2006 12:32:31 GMT</pubDate></item><item><title><![CDATA[Reply to Standalone Exe on Tue, 25 Jul 2006 18:19:38 GMT]]></title><description><![CDATA[<p>Krass! Es scheint tatsächlich an dem LinkLabel oder dem ColorButton gelegen zu haben. Hab die beiden jetzt mal komplett rausgenommen aus dem Projekt, und es klappt. Kann mir das aber trotzdem nicht erklären. Es muss wohl an den Dingen liegen, die Morris angemahnt hat. Aber ich versteh's nicht. Kann mir das vielleicht einer erklären?</p>
<p>@Morris: Vielen Dank. Ohne dich wäre ich da niemals drauf gekommen. Ich werde die TLinkLabel-Kompo wohl nochmal überarbeiten. Ich verstehe aber einfach nicht, was an dem</p>
<pre><code class="language-cpp">if(!font)
   font = new TFont();
</code></pre>
<p>so schlecht sein soll...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1104060</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1104060</guid><dc:creator><![CDATA[WebFritzi]]></dc:creator><pubDate>Tue, 25 Jul 2006 18:19:38 GMT</pubDate></item></channel></rss>