<?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[globale Variablen und der Umgang mit jenen]]></title><description><![CDATA[<p>Hallo liebe Forumsmitglieder,</p>
<p>ich lese zwar schon eine ganze Weile mit, aber da ich im Rahmen meiner Diplomarbeit doch vor einem C++-Problem stecke und trotz Google und Suchfunktion keine brauchbaren Sachen finden konnte, hab ich mich hier doch mal registriert. Um es vorweg zu nehmen, ich studiere Kommunikationstechnik und nicht Informatik etc. sprich: Meine Programmierkenntnisse bewegen sich irgendwo ziemlich weit unten.</p>
<p>Nun aber zum Problem:</p>
<p>Ich möchte einen USB-CAN-Adapter, der über einen DLL-Treiber in Win-XP installiert ist, ansteuern (senden und lesen). Das ganze funktioniert einwandfrei, solange sich die Sendeobjekte im Hauptfenster (Form 1) befinden. Der Übersichtlichkeit wegen habe ich ein weiteres Form-Fenster angelegt, aus welchem auch gesendet werden soll. Fürs Senden benötigt man 2 Variablen. Zum einen das Array &quot;msg&quot; und dann noch das Handle &quot;h&quot;.<br />
Beide habe ich in der *.h-Datei des Form 1-Fensters (global wie ich meine) deklariert.</p>
<blockquote>
<p>#ifndef CL_UH<br />
#define CL_UH<br />
//---------------------------------------------------------------------------<br />
#include &lt;Classes.hpp&gt;<br />
#include &lt;Controls.hpp&gt;<br />
#include &lt;StdCtrls.hpp&gt;<br />
#include &lt;Forms.hpp&gt;<br />
#include &lt;ExtCtrls.hpp&gt;<br />
#include &lt;Dialogs.hpp&gt;<br />
//---------------------------------------------------------------------------<br />
class TForm1 : public TForm<br />
{<br />
__published: // Von der IDE verwaltete Komponenten<br />
TLabel *Label1;<br />
...<br />
void __fastcall Button7Click(TObject *Sender);<br />
private: // Anwender-Deklarationen<br />
public: // Anwender-Deklarationen</p>
<p>__fastcall TForm1(TComponent* Owner);<br />
};<br />
//---------------------------------------------------------------------------</p>
<p><strong>CANHANDLE h;<br />
CANMsg msg;</strong><br />
extern PACKAGE TForm1 *Form1;<br />
//---------------------------------------------------------------------------<br />
#endif</p>
</blockquote>
<p>Leider werden beide Variablen nicht an das Form2-Fenster übergeben, so daß zwar während des Betriebes keine Fehlermeldungen kommen, jedoch auch nichts weiter mit dem Adapter passiert.</p>
<p>Lediglich der Compiler spuckt mir 2 Warnungen aus...</p>
<blockquote>
<p>[Linker Warnung] Public symbol '_h' defined in both module C:\...\CAN-LOGGER\CL_U.OBJ and C:\...\CAN-LOGGER\CL2_U.OBJ</p>
<p>[Linker Warnung] Public symbol '_msg' defined in both module C:\...\CAN-LOGGER\CL_U.OBJ and C:\...\CAN-LOGGER\CL2_U.OBJ</p>
</blockquote>
<p>Ich hab zwar schon oft aus den verschiedensten Gründen gelesen, daß man keine globalen Variablen definieren soll, aber bei den beiden Variablen (vor allem bei dem Handle macht das wirklich Sinn, da ich den Adapter ja nicht für jede Nachricht neu Initialisieren will.</p>
<p>Wie also kann ich die beiden Variablen korrekt deklarieren, so daß alle Forms drauf zugreifen können?</p>
<p>Vielen Dank im Voraus,</p>
<p>Holger</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/155307/globale-variablen-und-der-umgang-mit-jenen</link><generator>RSS for Node</generator><lastBuildDate>Mon, 10 Aug 2026 00:50:03 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/155307.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 04 Aug 2006 15:24:16 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to globale Variablen und der Umgang mit jenen on Fri, 04 Aug 2006 15:24:16 GMT]]></title><description><![CDATA[<p>Hallo liebe Forumsmitglieder,</p>
<p>ich lese zwar schon eine ganze Weile mit, aber da ich im Rahmen meiner Diplomarbeit doch vor einem C++-Problem stecke und trotz Google und Suchfunktion keine brauchbaren Sachen finden konnte, hab ich mich hier doch mal registriert. Um es vorweg zu nehmen, ich studiere Kommunikationstechnik und nicht Informatik etc. sprich: Meine Programmierkenntnisse bewegen sich irgendwo ziemlich weit unten.</p>
<p>Nun aber zum Problem:</p>
<p>Ich möchte einen USB-CAN-Adapter, der über einen DLL-Treiber in Win-XP installiert ist, ansteuern (senden und lesen). Das ganze funktioniert einwandfrei, solange sich die Sendeobjekte im Hauptfenster (Form 1) befinden. Der Übersichtlichkeit wegen habe ich ein weiteres Form-Fenster angelegt, aus welchem auch gesendet werden soll. Fürs Senden benötigt man 2 Variablen. Zum einen das Array &quot;msg&quot; und dann noch das Handle &quot;h&quot;.<br />
Beide habe ich in der *.h-Datei des Form 1-Fensters (global wie ich meine) deklariert.</p>
<blockquote>
<p>#ifndef CL_UH<br />
#define CL_UH<br />
//---------------------------------------------------------------------------<br />
#include &lt;Classes.hpp&gt;<br />
#include &lt;Controls.hpp&gt;<br />
#include &lt;StdCtrls.hpp&gt;<br />
#include &lt;Forms.hpp&gt;<br />
#include &lt;ExtCtrls.hpp&gt;<br />
#include &lt;Dialogs.hpp&gt;<br />
//---------------------------------------------------------------------------<br />
class TForm1 : public TForm<br />
{<br />
__published: // Von der IDE verwaltete Komponenten<br />
TLabel *Label1;<br />
...<br />
void __fastcall Button7Click(TObject *Sender);<br />
private: // Anwender-Deklarationen<br />
public: // Anwender-Deklarationen</p>
<p>__fastcall TForm1(TComponent* Owner);<br />
};<br />
//---------------------------------------------------------------------------</p>
<p><strong>CANHANDLE h;<br />
CANMsg msg;</strong><br />
extern PACKAGE TForm1 *Form1;<br />
//---------------------------------------------------------------------------<br />
#endif</p>
</blockquote>
<p>Leider werden beide Variablen nicht an das Form2-Fenster übergeben, so daß zwar während des Betriebes keine Fehlermeldungen kommen, jedoch auch nichts weiter mit dem Adapter passiert.</p>
<p>Lediglich der Compiler spuckt mir 2 Warnungen aus...</p>
<blockquote>
<p>[Linker Warnung] Public symbol '_h' defined in both module C:\...\CAN-LOGGER\CL_U.OBJ and C:\...\CAN-LOGGER\CL2_U.OBJ</p>
<p>[Linker Warnung] Public symbol '_msg' defined in both module C:\...\CAN-LOGGER\CL_U.OBJ and C:\...\CAN-LOGGER\CL2_U.OBJ</p>
</blockquote>
<p>Ich hab zwar schon oft aus den verschiedensten Gründen gelesen, daß man keine globalen Variablen definieren soll, aber bei den beiden Variablen (vor allem bei dem Handle macht das wirklich Sinn, da ich den Adapter ja nicht für jede Nachricht neu Initialisieren will.</p>
<p>Wie also kann ich die beiden Variablen korrekt deklarieren, so daß alle Forms drauf zugreifen können?</p>
<p>Vielen Dank im Voraus,</p>
<p>Holger</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1110643</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1110643</guid><dc:creator><![CDATA[waldguru82]]></dc:creator><pubDate>Fri, 04 Aug 2006 15:24:16 GMT</pubDate></item><item><title><![CDATA[Reply to globale Variablen und der Umgang mit jenen on Fri, 04 Aug 2006 15:32:53 GMT]]></title><description><![CDATA[<p><a href="http://www.marquardtnet.info/cecke/quickies.1/1_quicky_15.html" rel="nofollow">http://www.marquardtnet.info/cecke/quickies.1/1_quicky_15.html</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1110647</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1110647</guid><dc:creator><![CDATA[Christian411]]></dc:creator><pubDate>Fri, 04 Aug 2006 15:32:53 GMT</pubDate></item><item><title><![CDATA[Reply to globale Variablen und der Umgang mit jenen on Fri, 04 Aug 2006 16:00:36 GMT]]></title><description><![CDATA[<p><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="🙂"
    /> Traumhaft... genau das, wonach ich gesucht habe. Vielen Dank <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/1110667</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1110667</guid><dc:creator><![CDATA[waldguru82]]></dc:creator><pubDate>Fri, 04 Aug 2006 16:00:36 GMT</pubDate></item></channel></rss>