<?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[Parser-Bibliothek für Funktionsparsing]]></title><description><![CDATA[<p>Hi Leute,<br />
ich schreibe gerade an einem Funktionsplotter in VC++ 2008. An sich funktioniert alles, jedoch klappt das mit dem Parsen einer Funktion nicht! Ich wollte eigentlich den Parser mit GNU Bison generieren lassen, jedoch meckert da Visual Studio nur rum...<br />
Ich suche deshalb nach einer Bibliothek oder zumindest einem fertigen Parser im Internet...bin aber bis jetzt auf nichts gestoßen!</p>
<p>Habt ihr das vielleicht irgendwas hilfreiches für mich???</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/229679/parser-bibliothek-für-funktionsparsing</link><generator>RSS for Node</generator><lastBuildDate>Sun, 27 Sep 2026 16:32:34 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/229679.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 15 Dec 2008 10:04:18 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Parser-Bibliothek für Funktionsparsing on Mon, 15 Dec 2008 10:04:18 GMT]]></title><description><![CDATA[<p>Hi Leute,<br />
ich schreibe gerade an einem Funktionsplotter in VC++ 2008. An sich funktioniert alles, jedoch klappt das mit dem Parsen einer Funktion nicht! Ich wollte eigentlich den Parser mit GNU Bison generieren lassen, jedoch meckert da Visual Studio nur rum...<br />
Ich suche deshalb nach einer Bibliothek oder zumindest einem fertigen Parser im Internet...bin aber bis jetzt auf nichts gestoßen!</p>
<p>Habt ihr das vielleicht irgendwas hilfreiches für mich???</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1630665</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1630665</guid><dc:creator><![CDATA[Ben-ny]]></dc:creator><pubDate>Mon, 15 Dec 2008 10:04:18 GMT</pubDate></item><item><title><![CDATA[Reply to Parser-Bibliothek für Funktionsparsing on Mon, 15 Dec 2008 12:29:10 GMT]]></title><description><![CDATA[<p>Boost::Spirit:<br />
<a href="http://www.boost.org/doc/libs/1_35_0/libs/spirit/index.html" rel="nofollow">http://www.boost.org/doc/libs/1_35_0/libs/spirit/index.html</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1630738</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1630738</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Mon, 15 Dec 2008 12:29:10 GMT</pubDate></item><item><title><![CDATA[Reply to Parser-Bibliothek für Funktionsparsing on Mon, 15 Dec 2008 12:53:47 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/18422">@drakon</a>,<br />
Boost ist aber schon in der Version 1.37:<br />
<a href="http://www.boost.org/doc/libs/1_37_0/libs/spirit/index.html" rel="nofollow">http://www.boost.org/doc/libs/1_37_0/libs/spirit/index.html</a><br />
<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><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/22381">@Ben-ny</a>,<br />
Neben Spirit gäbe es noch <a href="http://www.boost.org/doc/libs/1_37_0/doc/html/xpressive.html" rel="nofollow">Xpressive</a>, welches reguläre Ausdrücke einsetzt. Könnte mir vorstellen, dass es, um eine Funktion zu parsen, auch noch sinnvoll wäre.<br />
Eine fertige Bibliothek ist mir nicht bekannt. Aber hast du schon auf den folgenden Seiten gesucht?<br />
<a href="http://www.sf.net" rel="nofollow">www.sf.net</a><br />
<a href="http://www.codeproject.com" rel="nofollow">www.codeproject.com</a><br />
<a href="http://www.codeguru.com" rel="nofollow">www.codeguru.com</a></p>
<p>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1630753</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1630753</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Mon, 15 Dec 2008 12:53:47 GMT</pubDate></item><item><title><![CDATA[Reply to Parser-Bibliothek für Funktionsparsing on Mon, 15 Dec 2008 13:05:18 GMT]]></title><description><![CDATA[<p>Dravere schrieb:</p>
<blockquote>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/18422">@drakon</a>,<br />
Boost ist aber schon in der Version 1.37:<br />
<a href="http://www.boost.org/doc/libs/1_37_0/libs/spirit/index.html" rel="nofollow">http://www.boost.org/doc/libs/1_37_0/libs/spirit/index.html</a><br />
<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>
</blockquote>
<p>Bin da über google rein. <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="😉"
    /> - Ist schneller, als über die Hauptseite..</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1630763</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1630763</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Mon, 15 Dec 2008 13:05:18 GMT</pubDate></item><item><title><![CDATA[Reply to Parser-Bibliothek für Funktionsparsing on Mon, 15 Dec 2008 13:26:04 GMT]]></title><description><![CDATA[<p>drakon schrieb:</p>
<blockquote>
<p>Bin da über google rein. <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="😉"
    /> - Ist schneller, als über die Hauptseite..</p>
</blockquote>
<p>Mach dir ein Lesezeichen zu <a href="http://www.boost.org/libs/libraries.htm" rel="nofollow">http://www.boost.org/libs/libraries.htm</a> und gibt ihm den Kürzel boost <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="🙂"
    /><br />
Der Link bringt dich immer zu den aktuellen Libs und zudem hat man dort noch eine etwas bessere Übersicht, wie ich finde.</p>
<p>(ok ok, das ist jetzt sehr Off-Topic, sry)</p>
<p>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1630779</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1630779</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Mon, 15 Dec 2008 13:26:04 GMT</pubDate></item><item><title><![CDATA[Reply to Parser-Bibliothek für Funktionsparsing on Mon, 15 Dec 2008 14:08:47 GMT]]></title><description><![CDATA[<p>Wenn du dich nicht wirklich mit dem Parsen auseinandersetzen willst und es &quot;einfach nur funktionieren&quot; (TM) soll, nimm ginac (google danach). Ich weiß aber nicht, ob der VC++ da mitspielt, das letzte mal als ich nachgeschaut habe gabs ginac nur für den g++.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1630798</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1630798</guid><dc:creator><![CDATA[geloescht]]></dc:creator><pubDate>Mon, 15 Dec 2008 14:08:47 GMT</pubDate></item><item><title><![CDATA[Reply to Parser-Bibliothek für Funktionsparsing on Mon, 15 Dec 2008 14:39:41 GMT]]></title><description><![CDATA[<p>Dravere schrieb:</p>
<blockquote>
<p>Mach dir ein Lesezeichen zu <a href="http://www.boost.org/libs/libraries.htm" rel="nofollow">http://www.boost.org/libs/libraries.htm</a> und gibt ihm den Kürzel boost <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="🙂"
    /><br />
Der Link bringt dich immer zu den aktuellen Libs und zudem hat man dort noch eine etwas bessere Übersicht, wie ich finde.</p>
</blockquote>
<p>[OT]<br />
Achja.. Links..<br />
Ich mache mir täglich wahrscheinlich um die 5 neue Links.. Wenn einer eine Sonderstellung haben will, dann muss er sich die verdienen. <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="😉"
    /> - boost ist nahe dran einen zu bekommen.. <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="😉"
    /><br />
[/OT]</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1630818</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1630818</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Mon, 15 Dec 2008 14:39:41 GMT</pubDate></item><item><title><![CDATA[Reply to Parser-Bibliothek für Funktionsparsing on Mon, 15 Dec 2008 18:11:11 GMT]]></title><description><![CDATA[<p>Ich danke schonmal für eure hilfe...<br />
Ich habe mich noch nicht ganz entschidene, ob ich jetzt einen der von euch empfohlenen Ansätze wähle, oder meinen Parser doch noch mit GNU Bison generiere...</p>
<p>Vorerst habe ich och ein anderes Problem, welches dringender ist... (siehe <a href="http://www.c-plusplus.net/forum/viewtopic-var-p-is-1630907.html#1630907" rel="nofollow">hier</a>)</p>
<p>LG Ben-ny</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1630908</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1630908</guid><dc:creator><![CDATA[Ben-ny]]></dc:creator><pubDate>Mon, 15 Dec 2008 18:11:11 GMT</pubDate></item><item><title><![CDATA[Reply to Parser-Bibliothek für Funktionsparsing on Mon, 15 Dec 2008 19:59:40 GMT]]></title><description><![CDATA[<p>ich kann nur <a href="http://muparser.sf.net" rel="nofollow">muparser.sf.net</a> empfehlen. <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/1630953</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1630953</guid><dc:creator><![CDATA[Maxi]]></dc:creator><pubDate>Mon, 15 Dec 2008 19:59:40 GMT</pubDate></item><item><title><![CDATA[Reply to Parser-Bibliothek für Funktionsparsing on Tue, 16 Dec 2008 20:00:58 GMT]]></title><description><![CDATA[<p>Ich habe jetzt doch noch einmal versucht den Parser mit GNU Bison zu generieren...und zwar wie folgt:</p>
<p>Die Klasse function habe ich erweitert:</p>
<pre><code class="language-cpp">/////function.h
class function {
public:
		virtual double value (double x);
};

class term : public function {
public:
		// this term class uses generally doubles for concrete values
        // and can only manage one variable called x 
        virtual void dump();
        virtual ~term();
        virtual void dump(int depth) = 0;
		void indent(int depth);
};

class binary_expression : public term {
public:
       binary_expression(term *left, term *right);
       ~binary_expression();
       virtual void dump(int depth);
protected:
       term *_left, *_right;
       char * _name;
};

class concrete_value : public term {
public:
       concrete_value(double value);
       virtual ~concrete_value();
       virtual double value(double x);
       virtual void dump(int depth);
private:
       double _value;
};

class variable : public term {
public:
       variable();
       virtual ~variable();
       virtual double value(double x);
       virtual void dump(int depth);
};

class negation : public term {
public:    
      negation(term *value);
      virtual ~negation();
      virtual double value(double x);
      virtual void dump(int depth);
private:
      term *_negated;
};

class addition : public binary_expression {
public:
       addition(term *left, term *right);
       virtual ~addition();
       virtual double value(double x);
};

class subtraction : public binary_expression {
public:
       subtraction(term *left, term *right);
       virtual ~subtraction();
       virtual double value(double x);
};

class multiplication : public binary_expression {
public:
       multiplication(term *left, term *right);
       virtual ~multiplication();
       virtual double value(double x);
};

class division : public binary_expression {
public:
       division(term *left, term *right);
       virtual ~division();
       virtual double value(double x);
};

class power : public binary_expression {
public:
       power(term *left, term *right);
       virtual ~power();
       virtual double value(double x);
};
</code></pre>
<p>und darin einige Sachen definiert (sollte man vlt. nicht alles durchlesen...steht großteils das gleiche drin!)</p>
<pre><code class="language-cpp">//////function.cpp

term::~term() {
}

void term::dump() {
      dump(0);             
}

void term::indent(int depth) {
     while (depth --)
           putchar('\t');
}

negation::negation(term *value) {
   _negated =  value;
}

negation::~negation() {
   if (_negated != NULL) {
       delete _negated;
   }          
}
double negation::value(double x) {
   return (-_negated-&gt;value(x));
}

void negation::dump(int depth) {
     indent(depth);
     puts(&quot;#NEGATE&quot;);
     _negated-&gt;dump(depth + 1);
}

concrete_value::concrete_value(double value) {
         _value = value;                                      
}

concrete_value::~concrete_value(){
}

double concrete_value::value(double x) {
       return _value;
}

void concrete_value::dump(int depth) {
     indent(depth);
     printf(&quot;%f\n&quot;, _value);    
}

variable::variable() {
}

variable::~variable() {
}

double variable::value(double x) {
       return x;       
}

void variable::dump(int depth) {
     indent(depth);
     puts(&quot;x&quot;);    
}

binary_expression::binary_expression(term *left, term *right) {
      _left = left;
      _right = right;   
}

binary_expression::~binary_expression() {
      if (_left != NULL)
           delete _left;

      if (_right != NULL)
           delete _right;                                   
}

void binary_expression::dump(int depth) {
     indent(depth);
     puts(_name);

     _left-&gt;dump(depth + 1);

     indent(depth);
     puts(&quot;#AND&quot;);

     _right-&gt;dump(depth + 1);
}

addition::addition(term *left, term *right) : binary_expression(left, right) {        
     _name = &quot;#ADD&quot;;
}

addition::~addition() {         
}

double addition::value(double x) {
       return _left-&gt;value(x) + _right-&gt;value(x);     
}

subtraction::subtraction(term *left, term *right) : binary_expression(left, right)  {  
      _name = &quot;#SUB&quot;;                  
}

subtraction::~subtraction() {                      
}

double subtraction::value(double x) {
       return _left-&gt;value(x) - _right-&gt;value(x);     
}

multiplication::multiplication(term *left, term *right): binary_expression(left, right) {
       _name = &quot;#MUL&quot;;
}

multiplication::~multiplication() {
}

double multiplication::value(double x) {
       return _left-&gt;value(x) * _right-&gt;value(x);
}

division::division(term *left, term *right): binary_expression(left, right) {
          _name = &quot;#DIV&quot;;
}

division::~division() {
}

double division::value(double x) {
       return _left-&gt;value(x) / _right-&gt;value(x);     
}

power::power(term *left, term *right): binary_expression(left, right) {
           _name = &quot;#POW&quot;;
}

power::~power() {
}

double power::value(double x) {
       return pow(_left-&gt;value(x),_right-&gt;value(x));
}
</code></pre>
<p>Meine main-Funktion habe ich in die von Bison verarbeitete parser.y gepackt, um nicht zu viel Zeug übergeben zu müssen!</p>
<p>Dabei bekomme ich eine ganze Liste von Fehlern, durch VC++ 2008, die ihr auch unten sehen könnt!</p>
<p>Was ich daran wichtig finde:</p>
<p>Warum erkennt der Compiler meine Klassen-Vererbung nicht und sieht function nicht mehr als Klasse an?<br />
(Dazu muss man vlt wissen: einen ähnlichen Parser habe ich vor einiger Zeit in Dev-Cpp gebaut und da lief alles einwandfrei...warum jetzt nicht=)<br />
Ist der Aufbau von parser.tab.c (der von Bison generierten Parser-Datei) falsch oder warum hat VC++ damit Probleme (siehe unterste Fehlermeldungen)?</p>
<p>Achso...zum generieren verwende ich den Befehl bison -d parser.y in der Kommandozeile, was bisher immer richtig funktioniert hat!</p>
<pre><code>------ Neues Erstellen gestartet: Projekt: plotter, Konfiguration: Debug Win32 ------
Die Zwischen- und Ausgabedateien für das Projekt &quot;plotter&quot; mit der Konfiguration &quot;Debug|Win32&quot; werden gelöscht.
Kompilieren...
draw.cpp
function.cpp
plot.cpp
text.cpp
Code wird generiert...
Kompilieren...
parser.tab.c
e:\daten\benny\schule\plotter\plotter\function.h(8) : error C2061: Syntaxfehler: Bezeichner 'function'
e:\daten\benny\schule\plotter\plotter\function.h(8) : error C2059: Syntaxfehler: ';'
e:\daten\benny\schule\plotter\plotter\function.h(8) : error C2449: '{' auf Dateiebene gefunden - fehlt der Funktionsheader?
e:\daten\benny\schule\plotter\plotter\function.h(11) : error C2059: Syntaxfehler: '}'
e:\daten\benny\schule\plotter\plotter\function.h(23) : error C2061: Syntaxfehler: Bezeichner 'binary_expression'
e:\daten\benny\schule\plotter\plotter\function.h(23) : error C2059: Syntaxfehler: ';'
e:\daten\benny\schule\plotter\plotter\function.h(23) : error C2059: Syntaxfehler: ':'
e:\daten\benny\schule\plotter\plotter\function.h(33) : error C2061: Syntaxfehler: Bezeichner 'concrete_value'
e:\daten\benny\schule\plotter\plotter\function.h(33) : error C2059: Syntaxfehler: ';'
e:\daten\benny\schule\plotter\plotter\function.h(33) : error C2059: Syntaxfehler: ':'
e:\daten\benny\schule\plotter\plotter\function.h(43) : error C2061: Syntaxfehler: Bezeichner 'variable'
e:\daten\benny\schule\plotter\plotter\function.h(43) : error C2059: Syntaxfehler: ';'
e:\daten\benny\schule\plotter\plotter\function.h(43) : error C2059: Syntaxfehler: ':'
e:\daten\benny\schule\plotter\plotter\function.h(51) : error C2061: Syntaxfehler: Bezeichner 'negation'
e:\daten\benny\schule\plotter\plotter\function.h(51) : error C2059: Syntaxfehler: ';'
e:\daten\benny\schule\plotter\plotter\function.h(51) : error C2059: Syntaxfehler: ':'
e:\daten\benny\schule\plotter\plotter\function.h(61) : error C2061: Syntaxfehler: Bezeichner 'addition'
e:\daten\benny\schule\plotter\plotter\function.h(61) : error C2059: Syntaxfehler: ';'
e:\daten\benny\schule\plotter\plotter\function.h(61) : error C2059: Syntaxfehler: ':'
e:\daten\benny\schule\plotter\plotter\function.h(68) : error C2061: Syntaxfehler: Bezeichner 'subtraction'
e:\daten\benny\schule\plotter\plotter\function.h(68) : error C2059: Syntaxfehler: ';'
e:\daten\benny\schule\plotter\plotter\function.h(68) : error C2059: Syntaxfehler: ':'
e:\daten\benny\schule\plotter\plotter\function.h(75) : error C2061: Syntaxfehler: Bezeichner 'multiplication'
e:\daten\benny\schule\plotter\plotter\function.h(75) : error C2059: Syntaxfehler: ';'
e:\daten\benny\schule\plotter\plotter\function.h(75) : error C2059: Syntaxfehler: ':'
e:\daten\benny\schule\plotter\plotter\function.h(82) : error C2061: Syntaxfehler: Bezeichner 'division'
e:\daten\benny\schule\plotter\plotter\function.h(82) : error C2059: Syntaxfehler: ';'
e:\daten\benny\schule\plotter\plotter\function.h(82) : error C2059: Syntaxfehler: ':'
e:\daten\benny\schule\plotter\plotter\function.h(89) : error C2061: Syntaxfehler: Bezeichner 'power'
e:\daten\benny\schule\plotter\plotter\function.h(89) : error C2059: Syntaxfehler: ';'
e:\daten\benny\schule\plotter\plotter\function.h(89) : error C2059: Syntaxfehler: ':'
e:\daten\benny\schule\plotter\plotter\plot.h(9) : error C2143: Syntaxfehler: Es fehlt ')' vor '*'
e:\daten\benny\schule\plotter\plotter\plot.h(9) : error C2081: 'function': Name in der formalen Parameterliste ist ungültig
e:\daten\benny\schule\plotter\plotter\plot.h(9) : error C2143: Syntaxfehler: Es fehlt '{' vor '*'
e:\daten\benny\schule\plotter\plotter\plot.h(9) : error C2059: Syntaxfehler: 'Typ'
e:\daten\benny\schule\plotter\plotter\plot.h(9) : error C2059: Syntaxfehler: ')'
parser.y(19) : error C2143: Syntaxfehler: Es fehlt '{' vor '*'
parser.tab.c(223) : error C2061: Syntaxfehler: Bezeichner 'term'
parser.tab.c(224) : error C2059: Syntaxfehler: '}'
parser.tab.c(810) : error C2061: Syntaxfehler: Bezeichner 'term'
parser.tab.c(812) : error C2449: '{' auf Dateiebene gefunden - fehlt der Funktionsheader?
parser.tab.c(826) : error C2059: Syntaxfehler: '}'
parser.tab.c(851) : error C2143: Syntaxfehler: Es fehlt '{' vor '*'
parser.tab.c(879) : error C2449: '{' auf Dateiebene gefunden - fehlt der Funktionsheader?
parser.tab.c(1462) : error C2059: Syntaxfehler: '}'
parser.y(75) : fatal error C1506: Weiterverarbeitung nach der Auflösung von Blöcken nicht möglich
Das Buildprotokoll wurde unter &quot;file://e:\Daten\Benny\Schule\plotter\plotter\Debug\BuildLog.htm&quot; gespeichert.
plotter - 46 Fehler, 0 Warnung(en)
========== Alles neu erstellen: 0 erfolgreich, Fehler bei 1, 0 übersprungen ==========
</code></pre>
<p>Ich hoffe das ist jetzt nich zu viel Information und Code geworden!</p>
<p>LG Ben-ny</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1631495</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1631495</guid><dc:creator><![CDATA[Ben-ny]]></dc:creator><pubDate>Tue, 16 Dec 2008 20:00:58 GMT</pubDate></item><item><title><![CDATA[Reply to Parser-Bibliothek für Funktionsparsing on Wed, 17 Dec 2008 06:14:48 GMT]]></title><description><![CDATA[<p>Wenn die Datei die Endung .c hat, wird der MSVC++ sie als C übersetzen. Dann wirst Du mit Klassen wenig Glück haben.</p>
<p>C-Code einfach als C++ zu übersetzen klappt allerdings auch nur selten. Du wirst die Funktionen der C-Datei in C++ extern &quot;C&quot; deklarieren und aufrufen müssen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1631590</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1631590</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Wed, 17 Dec 2008 06:14:48 GMT</pubDate></item><item><title><![CDATA[Reply to Parser-Bibliothek für Funktionsparsing on Wed, 17 Dec 2008 13:22:59 GMT]]></title><description><![CDATA[<p>Könnte es daran liegen, dass Du die Dateien nicht mit der Erweiterung .cpp gepeichert hat und Visual C++ diese nicht im C++ Modus kompiliert sondern als C source code?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1631826</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1631826</guid><dc:creator><![CDATA[3123123123]]></dc:creator><pubDate>Wed, 17 Dec 2008 13:22:59 GMT</pubDate></item><item><title><![CDATA[Reply to Parser-Bibliothek für Funktionsparsing on Wed, 17 Dec 2008 15:51:28 GMT]]></title><description><![CDATA[<p>Das war schon mal hilfreich!<br />
(War von Dev-Cpp gewohnt das einfach so zu lassen und wusste nicht, dass das bei VC++ dann nicht mehr funktioniert.)<br />
Da Bison C++-Code erzeugt sollte das aber kein Grund für weitere Probleme sein (habe jetzt einfach parser.tab.c -&gt; parser.tab.cpp umbenannt!)</p>
<p>Trotzdem bekomme ich noch Fehler:</p>
<pre><code>------ Neues Erstellen gestartet: Projekt: plotter, Konfiguration: Debug Win32 ------
Die Zwischen- und Ausgabedateien für das Projekt &quot;plotter&quot; mit der Konfiguration &quot;Debug|Win32&quot; werden gelöscht.
Kompilieren...
draw.cpp
function.cpp
parser.tab.cpp
e:\daten\benny\schule\plotter\plotter\parser.tab.c(198) : warning C4273: 'malloc': Inkonsistente DLL-Bindung.
        d:\programme\microsoft visual studio 9.0\vc\include\stdlib.h(601): Siehe vorherige Definition von 'malloc'
e:\daten\benny\schule\plotter\plotter\parser.tab.c(205) : warning C4273: 'free': Inkonsistente DLL-Bindung.
        d:\programme\microsoft visual studio 9.0\vc\include\stdlib.h(600): Siehe vorherige Definition von 'free'
e:\daten\benny\schule\plotter\plotter\parser.tab.c(825) : warning C4065: switch-Anweisung enthält 'default', aber keine case-Marken
e:\daten\benny\schule\plotter\plotter\parser.y(91) : warning C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
        d:\programme\microsoft visual studio 9.0\vc\include\stdio.h(306): Siehe Deklaration von 'scanf'
e:\daten\benny\schule\plotter\plotter\parser.y(132) : warning C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
        d:\programme\microsoft visual studio 9.0\vc\include\stdio.h(306): Siehe Deklaration von 'scanf'
plot.cpp
text.cpp
Code wird generiert...
Manifest in Ressourcen wird kompiliert...
Microsoft (R) Windows (R) Resource Compiler Version 6.0.5724.0
Copyright (C) Microsoft Corporation.  All rights reserved.
Verknüpfen...
MSVCRTD.lib(cinitexe.obj) : warning LNK4098: Standardbibliothek &quot;msvcrt.lib&quot; steht in Konflikt mit anderen Bibliotheken; /NODEFAULTLIB:Bibliothek verwenden.
function.obj : error LNK2001: Nicht aufgelöstes externes Symbol &quot;&quot;public: virtual double __thiscall function::value(double)&quot; (?value@function@@UAENN@Z)&quot;.
E:\Daten\Benny\Schule\plotter\Debug\plotter.exe : fatal error LNK1120: 1 nicht aufgelöste externe Verweise.
Das Buildprotokoll wurde unter &quot;file://e:\Daten\Benny\Schule\plotter\plotter\Debug\BuildLog.htm&quot; gespeichert.
plotter - 2 Fehler, 6 Warnung(en)
========== Alles neu erstellen: 0 erfolgreich, Fehler bei 1, 0 übersprungen ==========
</code></pre>
<p>Hat das was mit den Linkern zu tun???<br />
&quot;E:\Daten\Benny\Schule\plotter\Debug\plotter.exe : fatal error LNK1120: 1 nicht aufgelöste externe Verweise.&quot;</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1631921</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1631921</guid><dc:creator><![CDATA[Ben-ny]]></dc:creator><pubDate>Wed, 17 Dec 2008 15:51:28 GMT</pubDate></item><item><title><![CDATA[Reply to Parser-Bibliothek für Funktionsparsing on Wed, 17 Dec 2008 20:50:36 GMT]]></title><description><![CDATA[<p>In der Fehlermeldung steht ja, dass die Funktion <code>function::value(double)</code> nicht definiert ist.</p>
<p>Allerdings linkst du die falsche CRT (siehe Linkerwarnung) - stelle sicher, dass du in jeder Konfiguration die richtige Bibliothek der C-Runtime einbindest.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1632095</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1632095</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Wed, 17 Dec 2008 20:50:36 GMT</pubDate></item><item><title><![CDATA[Reply to Parser-Bibliothek für Funktionsparsing on Wed, 17 Dec 2008 20:55:01 GMT]]></title><description><![CDATA[<p>Aus irgendeinem Grund fällt mir jetzt eine Frage ein, die ich bisher immer vergessen habe... Kann man MSVC++ eigentlich irgendwie dazu überreden, bei dateien im eigenen Projektverzeichnis in Fehlermeldungen/Warnungen (Sowas gibt es bei mir natürlich nicht, das bezieht sich nur auf Code von anderen!!! *hüstel*) irrelevante Teile des Pfads auszublenden? Je neuer die Windows-Version, desto länger werden die irgendwie, wenn man sich an die Standardpfade hält <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/1632098</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1632098</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Wed, 17 Dec 2008 20:55:01 GMT</pubDate></item></channel></rss>