<?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[Funktion in einer &amp;quot;spziellen Klasse&amp;quot; zugreifen]]></title><description><![CDATA[<p>Schönen guten Abend, meine Frage handelt über das wxWidgets Framework. Ich habe die Frage dennoch hier gestellt, da es sich eig um eine allgemeine Klassen Frage handelt:</p>
<pre><code class="language-cpp">class CTeague_ServerFrame: public wxFrame
{
    public:
        CTeague_ServerFrame(wxWindow* parent,wxWindowID id = -1);
        virtual ~CTeague_ServerFrame();
        void setlistbox();

    private:
        //(*Handlers(CTeague_ServerFrame)
        void OnQuit(wxCommandEvent&amp; event);
        void OnAbout(wxCommandEvent&amp; event);
        void OnButton1Click(wxCommandEvent&amp; event);
        //*)

        //(*Identifiers(CTeague_ServerFrame)
        static const long ID_BUTTON1;
        static const long ID_LISTBOX1;
        static const long idMenuQuit;
        static const long idMenuAbout;
        static const long ID_STATUSBAR1;
        //*)

        //(*Declarations(CTeague_ServerFrame)
        wxButton* Button1;
        wxStatusBar* StatusBar1;
        wxListBox* ListBox1;
        //*)

        DECLARE_EVENT_TABLE()
};
</code></pre>
<p>Wie kann ich jetzt über eine ich nenne es mal &quot;normale Funktion&quot; auf die ListBox1 zu greifen oder allgemein auf eine Funktion innerhalb der Klasse. Ich meine über eine Funktion, bei der nicht CTeague_ServerFrame:: vorsteht. Beispielsweise einfach so:</p>
<pre><code class="language-cpp">int cb_on() {
    CTeague_ServerFrame::setlistbox();
   return 0;
}
</code></pre>
<p>Dann sagt er mir Objekt nicht vorhanden, klar weil er von ausserhalb nicht die Klasse kennt. (setlistbox ist selbstverständlich public)</p>
<p>Vielen Dank für eure Hilfe(n) <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>Schoenen Abend euch allen.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/253634/funktion-in-einer-quot-spziellen-klasse-quot-zugreifen</link><generator>RSS for Node</generator><lastBuildDate>Sun, 13 Sep 2026 11:48:14 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/253634.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 04 Nov 2009 20:34:01 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Funktion in einer &amp;quot;spziellen Klasse&amp;quot; zugreifen on Wed, 04 Nov 2009 20:34:01 GMT]]></title><description><![CDATA[<p>Schönen guten Abend, meine Frage handelt über das wxWidgets Framework. Ich habe die Frage dennoch hier gestellt, da es sich eig um eine allgemeine Klassen Frage handelt:</p>
<pre><code class="language-cpp">class CTeague_ServerFrame: public wxFrame
{
    public:
        CTeague_ServerFrame(wxWindow* parent,wxWindowID id = -1);
        virtual ~CTeague_ServerFrame();
        void setlistbox();

    private:
        //(*Handlers(CTeague_ServerFrame)
        void OnQuit(wxCommandEvent&amp; event);
        void OnAbout(wxCommandEvent&amp; event);
        void OnButton1Click(wxCommandEvent&amp; event);
        //*)

        //(*Identifiers(CTeague_ServerFrame)
        static const long ID_BUTTON1;
        static const long ID_LISTBOX1;
        static const long idMenuQuit;
        static const long idMenuAbout;
        static const long ID_STATUSBAR1;
        //*)

        //(*Declarations(CTeague_ServerFrame)
        wxButton* Button1;
        wxStatusBar* StatusBar1;
        wxListBox* ListBox1;
        //*)

        DECLARE_EVENT_TABLE()
};
</code></pre>
<p>Wie kann ich jetzt über eine ich nenne es mal &quot;normale Funktion&quot; auf die ListBox1 zu greifen oder allgemein auf eine Funktion innerhalb der Klasse. Ich meine über eine Funktion, bei der nicht CTeague_ServerFrame:: vorsteht. Beispielsweise einfach so:</p>
<pre><code class="language-cpp">int cb_on() {
    CTeague_ServerFrame::setlistbox();
   return 0;
}
</code></pre>
<p>Dann sagt er mir Objekt nicht vorhanden, klar weil er von ausserhalb nicht die Klasse kennt. (setlistbox ist selbstverständlich public)</p>
<p>Vielen Dank für eure Hilfe(n) <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>Schoenen Abend euch allen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1803469</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1803469</guid><dc:creator><![CDATA[mmarcel1]]></dc:creator><pubDate>Wed, 04 Nov 2009 20:34:01 GMT</pubDate></item><item><title><![CDATA[Reply to Funktion in einer &amp;quot;spziellen Klasse&amp;quot; zugreifen on Wed, 04 Nov 2009 20:40:23 GMT]]></title><description><![CDATA[<p>Da die Memberfunktion nicht <code>static</code> ist, brauchst du ein Objekt, um die Funktion darauf aufzurufen.</p>
<p>Sprich in deinem Beispiel in etwa so:</p>
<pre><code class="language-cpp">int cb_on() {
   CTeague_ServerFrame sf;
   sf.setlistbox();
   return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1803471</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1803471</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Wed, 04 Nov 2009 20:40:23 GMT</pubDate></item><item><title><![CDATA[Reply to Funktion in einer &amp;quot;spziellen Klasse&amp;quot; zugreifen on Wed, 04 Nov 2009 20:47:33 GMT]]></title><description><![CDATA[<p>ich kann doch kein objekt davon erzeugen, weil ich ja selbst die klasse definiere. Das Objekt wird ja erst viel später erzeugt, und dann soll meine funktion ja ein teil davon sein. Ich kann leider meine Funktion nicht hiermit erzeugen &quot;CTeague_ServerFrame::&quot; , da ich den Zeiger von dieser Funktion für eine Callback Funktion nutzen möchte. Danke aber trotzdem <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/1803478</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1803478</guid><dc:creator><![CDATA[mmarcel1]]></dc:creator><pubDate>Wed, 04 Nov 2009 20:47:33 GMT</pubDate></item><item><title><![CDATA[Reply to Funktion in einer &amp;quot;spziellen Klasse&amp;quot; zugreifen on Wed, 04 Nov 2009 20:56:44 GMT]]></title><description><![CDATA[<p>Warum solltest du kein Objekt erzeugen können?</p>
<p>Wenn du das Objekt nich in der Funktion erzeugen möchtest, dann übergibst du ihr halt einfach einen Zeiger darauf:</p>
<pre><code class="language-cpp">int cb_on(CTeague_ServerFrame* sf)
   sf-&gt;setlistbox();
   return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1803480</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1803480</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Wed, 04 Nov 2009 20:56:44 GMT</pubDate></item><item><title><![CDATA[Reply to Funktion in einer &amp;quot;spziellen Klasse&amp;quot; zugreifen on Wed, 04 Nov 2009 22:10:48 GMT]]></title><description><![CDATA[<p>Wenn ich das Objekt neu erzeuge funktioniert es nicht, da es ja nicht das Objekt ist welches momentan zu sehen ist.</p>
<pre><code class="language-cpp">bool CTeague_ServerApp::OnInit()
{
    //(*AppInitialize
    bool wxsOK = true;
    wxInitAllImageHandlers();
    if ( wxsOK )
    {
    	CTeague_ServerFrame* Frame = new CTeague_ServerFrame(0);
    	Frame-&gt;Show();
    	SetTopWindow(Frame);
    }
    //*)
    return wxsOK;

}
</code></pre>
<p>Hier wird es doch erzeugt. Ich befinde mich doch aber noch in der Klassen Definition. Wie soll ich denn den Zeiger in diese Funktion (ausserhalb der Klasse) bekommen? (Habe ich gerade mal versucht, ich kann den Zeiger nach Init nicht übergeben.) Noch Vorschläge <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/1803507</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1803507</guid><dc:creator><![CDATA[mmarcel1]]></dc:creator><pubDate>Wed, 04 Nov 2009 22:10:48 GMT</pubDate></item><item><title><![CDATA[Reply to Funktion in einer &amp;quot;spziellen Klasse&amp;quot; zugreifen on Wed, 04 Nov 2009 22:25:53 GMT]]></title><description><![CDATA[<p>Speicher einfach den CTeague_ServerFrame zeiger in deiner CTeague_ServerApp klasse?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1803513</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1803513</guid><dc:creator><![CDATA[jesus was black]]></dc:creator><pubDate>Wed, 04 Nov 2009 22:25:53 GMT</pubDate></item><item><title><![CDATA[Reply to Funktion in einer &amp;quot;spziellen Klasse&amp;quot; zugreifen on Wed, 04 Nov 2009 22:29:33 GMT]]></title><description><![CDATA[<p>Okay, wie kann ich dann aber aus dem Hauptprogramm zugreifen? Bin ja dann auch nicht in der Klasse. Und wenn ich eine globale Variable habe um den Zeiger zu speichern geht es auch nicht. Danke und weiter gehts <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":-D"
      alt="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1803514</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1803514</guid><dc:creator><![CDATA[mmarcel1]]></dc:creator><pubDate>Wed, 04 Nov 2009 22:29:33 GMT</pubDate></item><item><title><![CDATA[Reply to Funktion in einer &amp;quot;spziellen Klasse&amp;quot; zugreifen on Wed, 04 Nov 2009 22:32:09 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">bool CTeague_ServerApp::OnInit()
{
    //(*AppInitialize
    bool wxsOK = true;
    wxInitAllImageHandlers();
    if ( wxsOK )
    {
        CTeague_ServerFrame* Frame = new CTeague_ServerFrame(0);
        Frame-&gt;Show();
        Frame-&gt;setlistbox (); // was ist daran nicht gut?
        SetTopWindow(Frame);
    }
    //*)
    return wxsOK;

}
</code></pre>
<p>Ich versteh wirklich nicht, was du genau willst. Wo bist du genau und auf was möchtest du zugreifen? - Fakt ist, dass wenn du ein Objekt von dem Typen hast, kannst du ohne Probleme setlistbox aufrufen. Du hast, denke ich ein ein anderes Verständnis Problem.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1803516</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1803516</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Wed, 04 Nov 2009 22:32:09 GMT</pubDate></item><item><title><![CDATA[Reply to Funktion in einer &amp;quot;spziellen Klasse&amp;quot; zugreifen on Wed, 04 Nov 2009 22:33:27 GMT]]></title><description><![CDATA[<p>mmarcel1 schrieb:</p>
<blockquote>
<p>Okay, wie kann ich dann aber aus dem Hauptprogramm zugreifen? Bin ja dann auch nicht in der Klasse. Und wenn ich eine globale Variable habe um den Zeiger zu speichern geht es auch nicht. Danke und weiter gehts <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":-D"
      alt="😃"
    /></p>
</blockquote>
<p>Genau das habe ich befürchtet, dass du ein solches Problem hast. <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>Warum sollte ein globale Variable nicht gehen? (ob es gut ist das zu machen ist eine andere Frage, aber du solltest dein Problem ein wenig genauer schildern.)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1803517</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1803517</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Wed, 04 Nov 2009 22:33:27 GMT</pubDate></item><item><title><![CDATA[Reply to Funktion in einer &amp;quot;spziellen Klasse&amp;quot; zugreifen on Wed, 04 Nov 2009 22:35:34 GMT]]></title><description><![CDATA[<p>drakon schrieb:</p>
<blockquote>
<pre><code class="language-cpp">bool CTeague_ServerApp::OnInit()
{
    //(*AppInitialize
    bool wxsOK = true;
    wxInitAllImageHandlers();
    if ( wxsOK )
    {
        CTeague_ServerFrame* Frame = new CTeague_ServerFrame(0);
        Frame-&gt;Show();
        Frame-&gt;setlistbox (); // was ist daran nicht gut?
        SetTopWindow(Frame);
    }
    //*)
    return wxsOK;

}
</code></pre>
<p>Ich versteh wirklich nicht, was du genau willst. Wo bist du genau und auf was möchtest du zugreifen? - Fakt ist, dass wenn du ein Objekt von dem Typen hast, kannst du ohne Probleme setlistbox aufrufen. Du hast, denke ich ein ein anderes Verständnis Problem.</p>
</blockquote>
<p>Das ich mich hier in einer anderen Klasse befinde. Was ich möchte ist, innerhalb der Klasse CTeague_ServerFrame mit einer öffentlichen (nicht zur Klasse gehörenden) Funktion, auf die Klassen Elemente zuzugreifen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1803520</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1803520</guid><dc:creator><![CDATA[mmarcel1]]></dc:creator><pubDate>Wed, 04 Nov 2009 22:35:34 GMT</pubDate></item><item><title><![CDATA[Reply to Funktion in einer &amp;quot;spziellen Klasse&amp;quot; zugreifen on Wed, 04 Nov 2009 22:38:26 GMT]]></title><description><![CDATA[<p>Datei - CTeague_ServerMain.cpp</p>
<pre><code class="language-cpp">/***************************************************************
 * Name:      CTeague_ServerMain.cpp
 * Purpose:   Code for Application Frame
 * Author:    stu [:-) ()
 * Created:   2009-11-03
 * Copyright: stu [:-) ()
 * License:
 **************************************************************/

#include &quot;CTeague_ServerMain.h&quot;
#include &lt;wx/msgdlg.h&gt;

//(*InternalHeaders(CTeague_ServerFrame)
#include &lt;wx/intl.h&gt;
#include &lt;wx/string.h&gt;
//*)

#ifdef DLL_EXPORT
#define DLLDIR  __declspec(dllexport)
#else
#define DLLDIR  __declspec(dllimport)
#endif
#include &lt;windows.h&gt;

typedef int (*Callback)();

extern &quot;C&quot; {
    // DLLDIR double SomeFunction (const LPCSTR sometext);
    DLLDIR int STDCALL dll_startserver(Callback cb_onf, Callback cb_off);
    // DLLDIR void STDCALL dll_newclient();
}

int cb_on() {
    // wxMessageBox(_(&quot;On&quot;), _(&quot;Welcome to...&quot;));
    // saveFrame1-&gt;ListBox1-&gt;Append(_(&quot;a12&quot;));
   return 0;
}

int cb_off() {
    // wxMessageBox(_(&quot;Off&quot;), _(&quot;Welcome to...&quot;));
    return 0;
}

//helper functions
enum wxbuildinfoformat {
    short_f, long_f };

wxString wxbuildinfo(wxbuildinfoformat format)
{
    wxString wxbuild(wxVERSION_STRING);

    if (format == long_f )
    {
#if defined(__WXMSW__)
        wxbuild &lt;&lt; _T(&quot;-Windows&quot;);
#elif defined(__UNIX__)
        wxbuild &lt;&lt; _T(&quot;-Linux&quot;);
        #define STDCALL __attribute__((stdcall))
#endif

#if wxUSE_UNICODE
        wxbuild &lt;&lt; _T(&quot;-Unicode build&quot;);
#else
        wxbuild &lt;&lt; _T(&quot;-ANSI build&quot;);
#endif // wxUSE_UNICODE
    }

    return wxbuild;
}

//(*IdInit(CTeague_ServerFrame)
const long CTeague_ServerFrame::ID_BUTTON1 = wxNewId();
const long CTeague_ServerFrame::ID_LISTBOX1 = wxNewId();
const long CTeague_ServerFrame::idMenuQuit = wxNewId();
const long CTeague_ServerFrame::idMenuAbout = wxNewId();
const long CTeague_ServerFrame::ID_STATUSBAR1 = wxNewId();
//*)

BEGIN_EVENT_TABLE(CTeague_ServerFrame,wxFrame)
    //(*EventTable(CTeague_ServerFrame)
    //*)
END_EVENT_TABLE()

CTeague_ServerFrame::CTeague_ServerFrame(wxWindow* parent,wxWindowID id)
{
    //(*Initialize(CTeague_ServerFrame)
    wxMenuItem* MenuItem2;
    wxMenuItem* MenuItem1;
    wxMenu* Menu1;
    wxGridSizer* GridSizer1;
    wxMenuBar* MenuBar1;
    wxMenu* Menu2;

    Create(parent, id, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxDEFAULT_FRAME_STYLE, _T(&quot;id&quot;));
    GridSizer1 = new wxGridSizer(0, 3, 0, 0);
    Button1 = new wxButton(this, ID_BUTTON1, _(&quot;sS&quot;), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T(&quot;ID_BUTTON1&quot;));
    GridSizer1-&gt;Add(Button1, 1, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
    ListBox1 = new wxListBox(this, ID_LISTBOX1, wxDefaultPosition, wxDefaultSize, 0, 0, 0, wxDefaultValidator, _T(&quot;ID_LISTBOX1&quot;));
    ListBox1-&gt;Append(_(&quot;a&quot;));
    GridSizer1-&gt;Add(ListBox1, 1, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
    SetSizer(GridSizer1);
    MenuBar1 = new wxMenuBar();
    Menu1 = new wxMenu();
    MenuItem1 = new wxMenuItem(Menu1, idMenuQuit, _(&quot;Quit\tAlt-F4&quot;), _(&quot;Quit the application&quot;), wxITEM_NORMAL);
    Menu1-&gt;Append(MenuItem1);
    MenuBar1-&gt;Append(Menu1, _(&quot;&amp;File&quot;));
    Menu2 = new wxMenu();
    MenuItem2 = new wxMenuItem(Menu2, idMenuAbout, _(&quot;About\tF1&quot;), _(&quot;Show info about this application&quot;), wxITEM_NORMAL);
    Menu2-&gt;Append(MenuItem2);
    MenuBar1-&gt;Append(Menu2, _(&quot;Help&quot;));
    SetMenuBar(MenuBar1);
    StatusBar1 = new wxStatusBar(this, ID_STATUSBAR1, 0, _T(&quot;ID_STATUSBAR1&quot;));
    int __wxStatusBarWidths_1[1] = { -1 };
    int __wxStatusBarStyles_1[1] = { wxSB_NORMAL };
    StatusBar1-&gt;SetFieldsCount(1,__wxStatusBarWidths_1);
    StatusBar1-&gt;SetStatusStyles(1,__wxStatusBarStyles_1);
    SetStatusBar(StatusBar1);
    GridSizer1-&gt;Fit(this);
    GridSizer1-&gt;SetSizeHints(this);

    Connect(ID_BUTTON1,wxEVT_COMMAND_BUTTON_CLICKED,(wxObjectEventFunction)&amp;CTeague_ServerFrame::OnButton1Click);
    Connect(idMenuQuit,wxEVT_COMMAND_MENU_SELECTED,(wxObjectEventFunction)&amp;CTeague_ServerFrame::OnQuit);
    Connect(idMenuAbout,wxEVT_COMMAND_MENU_SELECTED,(wxObjectEventFunction)&amp;CTeague_ServerFrame::OnAbout);
    //*)
}

CTeague_ServerFrame::~CTeague_ServerFrame()
{
    //(*Destroy(CTeague_ServerFrame)
    //*)
}

void CTeague_ServerFrame::OnQuit(wxCommandEvent&amp; event)
{
    Close();
}

void CTeague_ServerFrame::OnAbout(wxCommandEvent&amp; event)
{
    wxString msg = wxbuildinfo(long_f);
    wxMessageBox(msg, _(&quot;Welcome to...&quot;));
}

void CTeague_ServerFrame::OnButton1Click(wxCommandEvent&amp; event)
{// Start Server
    Button1-&gt;Enable(false);
    dll_startserver(&amp;cb_on, &amp;cb_off);

}
</code></pre>
<p>Datei - CTeague_ServerMain.h</p>
<pre><code class="language-cpp">/***************************************************************
 * Name:      CTeague_ServerMain.h
 * Purpose:   Defines Application Frame
 * Author:    stu [:-) ()
 * Created:   2009-11-03
 * Copyright: stu [:-) ()
 * License:
 **************************************************************/

#ifndef CTEAGUE_SERVERMAIN_H
#define CTEAGUE_SERVERMAIN_H

//(*Headers(CTeague_ServerFrame)
#include &lt;wx/sizer.h&gt;
#include &lt;wx/menu.h&gt;
#include &lt;wx/listbox.h&gt;
#include &lt;wx/button.h&gt;
#include &lt;wx/frame.h&gt;
#include &lt;wx/statusbr.h&gt;
//*)

class CTeague_ServerFrame: public wxFrame
{
    public:
        CTeague_ServerFrame(wxWindow* parent,wxWindowID id = -1);
        virtual ~CTeague_ServerFrame();

    private:
        // my_own

        //(*Handlers(CTeague_ServerFrame)
        void OnQuit(wxCommandEvent&amp; event);
        void OnAbout(wxCommandEvent&amp; event);
        void OnButton1Click(wxCommandEvent&amp; event);
        //*)

        //(*Identifiers(CTeague_ServerFrame)
        static const long ID_BUTTON1;
        static const long ID_LISTBOX1;
        static const long idMenuQuit;
        static const long idMenuAbout;
        static const long ID_STATUSBAR1;
        //*)

        //(*Declarations(CTeague_ServerFrame)
        wxButton* Button1;
        wxStatusBar* StatusBar1;
        wxListBox* ListBox1;
        //*)

        DECLARE_EVENT_TABLE()
};

#endif // CTEAGUE_SERVERMAIN_H
</code></pre>
<p>Datei - CTeague_ServerApp.h</p>
<pre><code class="language-cpp">/***************************************************************
 * Name:      CTeague_ServerApp.h
 * Purpose:   Defines Application Class
 * Author:    stu [:-) ()
 * Created:   2009-11-03
 * Copyright: stu [:-) ()
 * License:
 **************************************************************/

#ifndef CTEAGUE_SERVERAPP_H
#define CTEAGUE_SERVERAPP_H

#include &lt;wx/app.h&gt;

class CTeague_ServerApp : public wxApp
{
    public:
        virtual bool OnInit();
};

#endif // CTEAGUE_SERVERAPP_H
</code></pre>
<p>Datei - CTeague_ServerApp.cpp</p>
<pre><code class="language-cpp">/***************************************************************
 * Name:      CTeague_ServerApp.cpp
 * Purpose:   Code for Application Class
 * Author:    stu [:-) ()
 * Created:   2009-11-03
 * Copyright: stu [:-) ()
 * License:
 **************************************************************/

#include &quot;CTeague_ServerApp.h&quot;

//(*AppHeaders
#include &quot;CTeague_ServerMain.h&quot;
#include &lt;wx/image.h&gt;
//*)

IMPLEMENT_APP(CTeague_ServerApp);

bool CTeague_ServerApp::OnInit()
{
    //(*AppInitialize
    bool wxsOK = true;
    wxInitAllImageHandlers();
    if ( wxsOK )
    {
    	CTeague_ServerFrame* Frame = new CTeague_ServerFrame(0);
    	Frame-&gt;Show();

    	SetTopWindow(Frame);
    }
    //*)
    return wxsOK;

}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1803522</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1803522</guid><dc:creator><![CDATA[mmarcel1]]></dc:creator><pubDate>Wed, 04 Nov 2009 22:38:26 GMT</pubDate></item><item><title><![CDATA[Reply to Funktion in einer &amp;quot;spziellen Klasse&amp;quot; zugreifen on Wed, 04 Nov 2009 22:51:45 GMT]]></title><description><![CDATA[<p>Was spricht denn gegen sowas?</p>
<p>foo.hpp</p>
<pre><code class="language-cpp">namespace Globals
{
   CTeague_ServerFrame* Frame;
}
</code></pre>
<p>main.cpp</p>
<pre><code class="language-cpp">void OnInit()
{
   Globals::Frame = new CTeague_ServerFrame(0);
}
</code></pre>
<p>bar.cpp</p>
<pre><code class="language-cpp">void bar::on()
{
  Globals::Frame-&gt;setlistbox();
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1803525</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1803525</guid><dc:creator><![CDATA[jesus was black]]></dc:creator><pubDate>Wed, 04 Nov 2009 22:51:45 GMT</pubDate></item><item><title><![CDATA[Reply to Funktion in einer &amp;quot;spziellen Klasse&amp;quot; zugreifen on Wed, 04 Nov 2009 23:06:54 GMT]]></title><description><![CDATA[<p>Ich hatte ein sehr gutes Gefühl als ich deinen Vorschlag compiliert habe ^^, nur dann bekomme ich folgenden Error:</p>
<p>C:/SourceCode/Libraries/wxWidgets2.8/include/wx/app.h:(.bss+0x0): multiple definition of `Globals::Frame'</p>
<p>Mhhh</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1803529</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1803529</guid><dc:creator><![CDATA[mmarcel1]]></dc:creator><pubDate>Wed, 04 Nov 2009 23:06:54 GMT</pubDate></item><item><title><![CDATA[Reply to Funktion in einer &amp;quot;spziellen Klasse&amp;quot; zugreifen on Thu, 05 Nov 2009 09:20:53 GMT]]></title><description><![CDATA[<p>Da hilft es ein extern vor die Deklaration zu setzen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1803639</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1803639</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Thu, 05 Nov 2009 09:20:53 GMT</pubDate></item><item><title><![CDATA[Reply to Funktion in einer &amp;quot;spziellen Klasse&amp;quot; zugreifen on Thu, 05 Nov 2009 13:57:25 GMT]]></title><description><![CDATA[<p>Braunstein schrieb:</p>
<blockquote>
<p>Da hilft es ein extern vor die Deklaration zu setzen.</p>
</blockquote>
<p>Ist es so gemeint?</p>
<pre><code class="language-cpp">#include &quot;CTeague_ServerMain.h&quot;

namespace Globals
{
   extern CTeague_ServerFrame* Frame;
}
</code></pre>
<p>undefined reference to 'Globals::Frame'</p>
<p>Danke für eure Hilfe.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1803829</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1803829</guid><dc:creator><![CDATA[mmarcel1]]></dc:creator><pubDate>Thu, 05 Nov 2009 13:57:25 GMT</pubDate></item><item><title><![CDATA[Reply to Funktion in einer &amp;quot;spziellen Klasse&amp;quot; zugreifen on Thu, 05 Nov 2009 14:00:11 GMT]]></title><description><![CDATA[<p>im header (wo du den ptr deklarierst), sollte das extern davor.</p>
<p>im source (wo du den ptr definierst bzw initialisierst), sollte _kein_ extern davor...</p>
<p>bb</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1803833</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1803833</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Thu, 05 Nov 2009 14:00:11 GMT</pubDate></item><item><title><![CDATA[Reply to Funktion in einer &amp;quot;spziellen Klasse&amp;quot; zugreifen on Thu, 05 Nov 2009 16:38:38 GMT]]></title><description><![CDATA[<p>So, ich schätze mal das ich genau das bereits gemacht habe, was du vorgeschlagen hast.<br />
Nun habe ich folgendes Problem (ich habe meine neue Header Datei jetzt einfach zentral includiert):</p>
<p>D:\projects\CTeague_Server\foo.hpp|5|error: expected constructor, destructor, or type conversion before '*' token|</p>
<p>Es bezieht sich auf folgende Zeile:<br />
CTeague_ServerFrame* Frame;</p>
<p>Vielen Dank :-))</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1803929</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1803929</guid><dc:creator><![CDATA[mmarcel1]]></dc:creator><pubDate>Thu, 05 Nov 2009 16:38:38 GMT</pubDate></item><item><title><![CDATA[Reply to Funktion in einer &amp;quot;spziellen Klasse&amp;quot; zugreifen on Thu, 05 Nov 2009 19:14:02 GMT]]></title><description><![CDATA[<p>mmarcel1 schrieb:</p>
<blockquote>
<p>So, ich schätze mal das ich genau das bereits gemacht habe, was du vorgeschlagen hast.<br />
Nun habe ich folgendes Problem (ich habe meine neue Header Datei jetzt einfach zentral includiert):</p>
<p>D:\projects\CTeague_Server\foo.hpp|5|error: expected constructor, destructor, or type conversion before '*' token|</p>
<p>Es bezieht sich auf folgende Zeile:<br />
CTeague_ServerFrame* Frame;</p>
<p>Vielen Dank :-))</p>
</blockquote>
<p>Hängt das vielleicht damt zusammen das die Klasse CTeague_ServerFrame Eigenschaften und so vererbt bekam?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1804037</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1804037</guid><dc:creator><![CDATA[mmarcel1]]></dc:creator><pubDate>Thu, 05 Nov 2009 19:14:02 GMT</pubDate></item><item><title><![CDATA[Reply to Funktion in einer &amp;quot;spziellen Klasse&amp;quot; zugreifen on Fri, 06 Nov 2009 17:20:41 GMT]]></title><description><![CDATA[<p>mhh *push* <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="😞"
    /> Keine Idee?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1804529</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1804529</guid><dc:creator><![CDATA[mmarcel1]]></dc:creator><pubDate>Fri, 06 Nov 2009 17:20:41 GMT</pubDate></item><item><title><![CDATA[Reply to Funktion in einer &amp;quot;spziellen Klasse&amp;quot; zugreifen on Fri, 06 Nov 2009 18:06:19 GMT]]></title><description><![CDATA[<p>Zeig mal die Umgebung der Zeile, wo der Fehler auftritt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1804564</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1804564</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Fri, 06 Nov 2009 18:06:19 GMT</pubDate></item><item><title><![CDATA[Reply to Funktion in einer &amp;quot;spziellen Klasse&amp;quot; zugreifen on Fri, 06 Nov 2009 18:14:36 GMT]]></title><description><![CDATA[<p>drakon schrieb:</p>
<blockquote>
<p>Zeig mal die Umgebung der Zeile, wo der Fehler auftritt.</p>
</blockquote>
<p>Ich weiss leider nicht, wie ich die Header Dateien includieren muss.</p>
<p>Basisklasse:<br />
CTeague_ServerMain.h<br />
CTeague_ServerMain.cpp</p>
<p>Hier wird das Frame erzeugt:<br />
CTeague_ServerApp.h<br />
CTeague_ServerApp.cpp</p>
<p>Wo muss jetzt die foo.hpp includiert werden? Meine foo.hpp sieht wie folgt aus:</p>
<pre><code class="language-cpp">#include &quot;CTeague_ServerMain.h&quot;
extern CTeague_ServerFrame* Frame;
</code></pre>
<p>Vielen Dank <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/1804572</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1804572</guid><dc:creator><![CDATA[mmarcel1]]></dc:creator><pubDate>Fri, 06 Nov 2009 18:14:36 GMT</pubDate></item><item><title><![CDATA[Reply to Funktion in einer &amp;quot;spziellen Klasse&amp;quot; zugreifen on Sat, 07 Nov 2009 13:34:50 GMT]]></title><description><![CDATA[<p>mh, nur ein Tip würde mir reichen <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="😉"
    /> würde ich sofort ausprobieren. Also zu dem includen, danke <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/1804805</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1804805</guid><dc:creator><![CDATA[mmarcel1]]></dc:creator><pubDate>Sat, 07 Nov 2009 13:34:50 GMT</pubDate></item><item><title><![CDATA[Reply to Funktion in einer &amp;quot;spziellen Klasse&amp;quot; zugreifen on Sat, 07 Nov 2009 14:03:23 GMT]]></title><description><![CDATA[<p>Zeig mal, was du genau machst (ohne den ganzen Codebalast, den du mitschleppts).</p>
<p>Am besten ein Programm, welches abgesehen von diesem Fehler lauffähig wäre.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1804808</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1804808</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Sat, 07 Nov 2009 14:03:23 GMT</pubDate></item><item><title><![CDATA[Reply to Funktion in einer &amp;quot;spziellen Klasse&amp;quot; zugreifen on Sat, 07 Nov 2009 14:15:33 GMT]]></title><description><![CDATA[<p>Also:</p>
<p>foo.hpp habe ich ja bereits schon vorher geschrieben, in der CTeague_ServerMain.cpp habe ich folgende Funktion:</p>
<pre><code class="language-cpp">int cb_on() {
   Frame-&gt;ListBox1-&gt;Append(_(&quot;Hallo12&quot;)); // der fehler
   return 0;
}
</code></pre>
<p>es geht im grunde ja nur draum das Frame global erreichbar zu machen.</p>
<p>das frame wird ja in der CTeague_ServerApp.cpp erstellt.</p>
<pre><code class="language-cpp">bool CTeague_ServerApp::OnInit()
{
    //(*AppInitialize
    bool wxsOK = true;
    wxInitAllImageHandlers();
    if ( wxsOK )
    {
    	CTeague_ServerFrame* Frame = new CTeague_ServerFrame(0);
    	Frame-&gt;Show();

    	SetTopWindow(Frame);
    }
    //*)
    return wxsOK;

}
</code></pre>
<p>wobei ich hier die foo.hpp includiert habe (in der die deklaration mit extern steht). Das funktioniert auch ohne Fehlermeldung.</p>
<p>Etwas strukturierter:<br />
include von foo.hpp in der CTeague_ServerApp.h</p>
<p>Was muss ich jetzt in der CTeague_ServerMain.h includieren da ist das Frame ja noch nicht bekannt?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1804817</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1804817</guid><dc:creator><![CDATA[mmarcel1]]></dc:creator><pubDate>Sat, 07 Nov 2009 14:15:33 GMT</pubDate></item><item><title><![CDATA[Reply to Funktion in einer &amp;quot;spziellen Klasse&amp;quot; zugreifen on Sat, 07 Nov 2009 14:30:29 GMT]]></title><description><![CDATA[<p>Wenn etwas _wirklich_ global und einzigartig verfügbar sein sollte, dann ist wohl ein Singleton eine Möglichkeit.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1804822</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1804822</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Sat, 07 Nov 2009 14:30:29 GMT</pubDate></item><item><title><![CDATA[Reply to Funktion in einer &amp;quot;spziellen Klasse&amp;quot; zugreifen on Sat, 07 Nov 2009 15:54:37 GMT]]></title><description><![CDATA[<p>Hi, danke für deine Idee. Ich habe es mir mal angeschaut und sieht ganz interessant aus. Aber fast gleichzeitig kam mir eine Idee und zwar funktioniert mein Programm wie folgt:</p>
<p>Wenn ich alles bis auf die App.cpp in die App.h rein schreibe läuft es, bei folgender Reihenfolge:<br />
- Main.h<br />
- Deklaration des Frame Pointers<br />
- Main.cpp</p>
<p>Dann habe ich versucht genau in dieser Reihenfolge zu includen, nur dann stellt sich folgendes Problem für mich:<br />
Main.h (Definition des Frames)<br />
Main.cpp (dürfte klar sein)<br />
App.cpp (Ausführung des Frames und benötigt den Frame Pointer)</p>
<p>So wenn ich den Pointer jetzt in der Main.h deklariere, wäre er ja in der App.cpp verfügbar, soweit so gut. Er wäre (und muss) auch in der Main.cpp verfügbar sein, wäre er ja auch, hört sich gut an. Nur dann bekomme ich wieder folgenden Fehler:</p>
<p>&quot;multiple definition of `Frame'&quot;</p>
<p>Wobei ich fast wieder am Anfang wäre.</p>
<p>Müsste ich dann das Singleton in der Main.h erstellen, ja oder? Wie würde das denn aussehen? <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 />
Danke danke ^^</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1804847</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1804847</guid><dc:creator><![CDATA[mmarcel1]]></dc:creator><pubDate>Sat, 07 Nov 2009 15:54:37 GMT</pubDate></item></channel></rss>