<?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[Einbau meines Programms in ein bestehendes]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe eine Frage zum Einbau meines Programms:</p>
<p>Ich habe ein Programm, das eine main-Funktion enthält und aus mehreren Dateien besteht, geschrieben. Das Programm selbst wurde getestet und funktioniert.</p>
<p>Jetzt soll es in ein anderes Programm integriert und von dort in der main-Funktion aufgerufen werden.<br />
D.h. ich muss zunächst meine Dateien in das Verzeichnis kopieren und die main-Funktion umbenennen in xy? Wie kann ich nun die Funktion xy in dem Programm aufrufen?<br />
Bislang wurde an dieser Stelle immer ein Perl-Programm mit</p>
<p>sprintf(cmd,&quot;perl %s %s %d %s&quot;,checkScript(&quot;<a href="http://datei.pl" rel="nofollow">datei.pl</a>&quot;),etwas1,etwas2,etwas3);<br />
rExec(cmd);</p>
<p>aufgerufen.</p>
<p>Könnt Ihr mir da weiterhelfen?</p>
<p>Vielen Dank!</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/194186/einbau-meines-programms-in-ein-bestehendes</link><generator>RSS for Node</generator><lastBuildDate>Mon, 28 Sep 2026 09:29:58 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/194186.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 04 Oct 2007 05:58:23 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Einbau meines Programms in ein bestehendes on Thu, 04 Oct 2007 05:58:23 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe eine Frage zum Einbau meines Programms:</p>
<p>Ich habe ein Programm, das eine main-Funktion enthält und aus mehreren Dateien besteht, geschrieben. Das Programm selbst wurde getestet und funktioniert.</p>
<p>Jetzt soll es in ein anderes Programm integriert und von dort in der main-Funktion aufgerufen werden.<br />
D.h. ich muss zunächst meine Dateien in das Verzeichnis kopieren und die main-Funktion umbenennen in xy? Wie kann ich nun die Funktion xy in dem Programm aufrufen?<br />
Bislang wurde an dieser Stelle immer ein Perl-Programm mit</p>
<p>sprintf(cmd,&quot;perl %s %s %d %s&quot;,checkScript(&quot;<a href="http://datei.pl" rel="nofollow">datei.pl</a>&quot;),etwas1,etwas2,etwas3);<br />
rExec(cmd);</p>
<p>aufgerufen.</p>
<p>Könnt Ihr mir da weiterhelfen?</p>
<p>Vielen Dank!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1377548</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1377548</guid><dc:creator><![CDATA[LadyM]]></dc:creator><pubDate>Thu, 04 Oct 2007 05:58:23 GMT</pubDate></item><item><title><![CDATA[Reply to Einbau meines Programms in ein bestehendes on Thu, 04 Oct 2007 06:04:23 GMT]]></title><description><![CDATA[<p>Mit altem Code:</p>
<p>vorher:</p>
<pre><code class="language-cpp">//AlterProgramm.cpp

void main (){
......
}
</code></pre>
<p>nachher:</p>
<pre><code class="language-cpp">//AlterProgramm.h
void XY(){
........
}
</code></pre>
<p>Neues Programm:</p>
<pre><code class="language-cpp">//NeuesProgamm.cpp

void main(){

 XY();

}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1377554</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1377554</guid><dc:creator><![CDATA[BorisDieKlinge]]></dc:creator><pubDate>Thu, 04 Oct 2007 06:04:23 GMT</pubDate></item><item><title><![CDATA[Reply to Einbau meines Programms in ein bestehendes on Thu, 04 Oct 2007 06:27:03 GMT]]></title><description><![CDATA[<p>@Boris:<br />
Erstens: Ich dachte, du hättest inzwischen gelernt, daß es nicht &quot;void main()&quot; heißt.</p>
<p>Zweitens: Funktionen sollte man im Header nur deklarieren.</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/16762">@LadyM</a>:<br />
Das Prinzip von Boris war schon richtig - du verwandelst die &quot;alte&quot; main()-Funktion in eine normale Funktion (Name ist beliebig) und rufst sie aus deinem neuen Programm aus auf. Aber was ist der Sinn der ganzen Aktion?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1377565</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1377565</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Thu, 04 Oct 2007 06:27:03 GMT</pubDate></item><item><title><![CDATA[Reply to Einbau meines Programms in ein bestehendes on Thu, 04 Oct 2007 06:28:37 GMT]]></title><description><![CDATA[<p>ob void main oder int main, es geht ums prinzip;)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1377566</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1377566</guid><dc:creator><![CDATA[BorisDieKlinge]]></dc:creator><pubDate>Thu, 04 Oct 2007 06:28:37 GMT</pubDate></item><item><title><![CDATA[Reply to Einbau meines Programms in ein bestehendes on Thu, 04 Oct 2007 06:36:13 GMT]]></title><description><![CDATA[<p>Danke für Deine Antwort.</p>
<p>Ich habe ja bei meinen Dateien bereits eine .h-Datei, in der meine Klasse abc steht.</p>
<p>Ich habe nun also alle Dateien in das neue Verzeichnis kopiert, die main-Funktion in int xy () umbenannt und dann folgendermaßen in das Programm eingefügt:</p>
<pre><code class="language-cpp">#include &quot;abc.h&quot;
...
abc test;     // Objekt erzeugen
test.xy();    // Funktion aufrufen
...
</code></pre>
<p>Jetzt bekomme ich die Fehlermeldungen:<br />
main.cpp: undefined reference to 'abc::abc()'<br />
main.cpp: undefined reference to 'abc::xy()'<br />
main.cpp: undefined reference to 'abc::~abc()'<br />
main.cpp: undefined reference to 'abc::~abc()'</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/10318">@CStoll</a>:<br />
Das Perl-Programm, das bis jetzt bei dem Aufruf startete soll durch mein Programm ersetzt werden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1377568</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1377568</guid><dc:creator><![CDATA[LadyM]]></dc:creator><pubDate>Thu, 04 Oct 2007 06:36:13 GMT</pubDate></item><item><title><![CDATA[Reply to Einbau meines Programms in ein bestehendes on Thu, 04 Oct 2007 07:23:58 GMT]]></title><description><![CDATA[<p>BorisDieKlinge schrieb:</p>
<blockquote>
<p>ob void main oder int main, es geht ums prinzip;)</p>
</blockquote>
<p>Und man sollte es prinzipiell richtig angehen ;).</p>
<p>@ LadyM:</p>
<p>Grundsätzlich musst du deine alte main-Funktion (welche du in abc umbenannt hast) neu übersetzen, da der Linker eine Objekt-Datei benötigt, wo auch die &quot;Symbole&quot; abc, etc. enthalten sind.</p>
<p>Grüße...</p>
<p>Heiko</p>
<p>EDIT:<br />
Da ich gerade Kaffee-Pause habe, ist mir folgende Idee über eine Tasse Tee gekommen. Ob diese guter oder schlechter Stil ist, kann ich mangels Erfahrung nicht sagen. Mir ist nur die &quot;ist eine Anwendung&quot;-Beziehung ins Auge gesprungen:</p>
<pre><code class="language-cpp">// example.cpp
#include &lt;iostream&gt;
using namespace std;

// Abstract base-class 'Application'
class Application
{
public:
    Application() { }
    virtual ~Application() { }
    virtual int run(int argc, char** args) = 0;

};

// Application-class 'HelloWorld' (simply prints 'Hello World')
class HelloWorld : public Application
{
public:
    HelloWorld()
        : Application()
        { }

    int run(int argc, char** args);
};

int HelloWorld::run(int argc, char** args)
    {
        cout &lt;&lt; &quot;Hello World&quot; &lt;&lt; endl;
    }

// Application-class 'HelloWorldUser' (uses HelloWorld-class)
class HelloWorldUser : public Application
{
public:
    HelloWorldUser()
        : Application()
        { }

    int run(int argc, char** args);
};

int HelloWorldUser::run(int argc, char** args)
    {
        cout &lt;&lt; &quot;I'm using the HelloWorld-Application-class!&quot; &lt;&lt; endl;
        int subargc = 3;
        char* subargs[] = {args[0], &quot;Foo&quot;, &quot;Bar&quot;};
        HelloWorld subapp;
        return subapp.run(subargc, subargs);
    }

// The main-function doesn't any more than instanciating an
//  application-class and 'run's it.
int main(int argc, char** args)
    {
        HelloWorldUser app;
        return app.run(argc, args);
    }
</code></pre>
<p>(mein mehr schlechtes als rechtes Englisch möge man mir nachsehen <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/1377573</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1377573</guid><dc:creator><![CDATA[bwbg]]></dc:creator><pubDate>Thu, 04 Oct 2007 07:23:58 GMT</pubDate></item><item><title><![CDATA[Reply to Einbau meines Programms in ein bestehendes on Thu, 04 Oct 2007 07:21:45 GMT]]></title><description><![CDATA[<p>xy muss aber auch eine methode der abc klasse sein, wenn das gehen soll</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1377578</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1377578</guid><dc:creator><![CDATA[watnu]]></dc:creator><pubDate>Thu, 04 Oct 2007 07:21:45 GMT</pubDate></item><item><title><![CDATA[Reply to Einbau meines Programms in ein bestehendes on Thu, 04 Oct 2007 09:32:47 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/16744">@bwbg</a>:<br />
Meine Klasse heißt abc, die Funktion, die aufgerufen werden soll heißt xy(), nicht abc(). Funktioniert das trotzdem?</p>
<p>Wenn ich nun versuche, die Datei mit der main-Funktion und meine Datei (mit der xy()-Funktion) zu kompilieren, dann bekomme ich jetzt folgende Fehlermeldung:</p>
<p>error: invalid function declaration</p>
<p>Und zwar genau an der Stelle, an der in meiner Datei die Funktion xy() steht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1377670</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1377670</guid><dc:creator><![CDATA[LadyM]]></dc:creator><pubDate>Thu, 04 Oct 2007 09:32:47 GMT</pubDate></item><item><title><![CDATA[Reply to Einbau meines Programms in ein bestehendes on Thu, 04 Oct 2007 09:45:53 GMT]]></title><description><![CDATA[<p>Zeig doch mal etwas Code, damit wir dir folgen können <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/1377683</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1377683</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Thu, 04 Oct 2007 09:45:53 GMT</pubDate></item><item><title><![CDATA[Reply to Einbau meines Programms in ein bestehendes on Thu, 04 Oct 2007 12:06:30 GMT]]></title><description><![CDATA[<p>Als ich gerade den Code nochmal durchgeschaut habe, habe ich bemerkt, dass ich bei der Funktion xy die &quot;()&quot; vergessen hatte. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
<p>Jetzt lassen sich die Dateien zumindest ohne Fehler kompilieren.</p>
<p>Das Programm funktioniert jedoch noch nicht richtig, sondern bricht leider ab. Ich werde jetzt erstmal versuchen, das Problem allein zu lösen.<br />
Vermutlich werd ich aber später bestimmt nochmal etwas fragen... <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>
<p>Bis dahin aber schon mal vielen Dank für Eure Hilfe!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1377807</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1377807</guid><dc:creator><![CDATA[LadyM]]></dc:creator><pubDate>Thu, 04 Oct 2007 12:06:30 GMT</pubDate></item></channel></rss>