How to call an instantiated class member variable through other function that was unrelated to the class?
<p>I'm now creating a file transaction system (through FTP) using wxWidgets for the GUI and a multithreading class from CodeProject (<a href="http://www.codeproject.com/KB/threads/SynchronizedThreadNoMfc.aspx" rel="nofollow">http://www.codeproject.com/KB/threads/SynchronizedThreadNoMfc.aspx</a>) - Please read the article first for reference.</p>

<p>In my GUI, I have a textbox (wxTextCtrl) that stores the file path that wanted to be sent to the FTP server, and I wanted to get its value through the multi-threading function.</p>

<p>Here is my code so far: (simplified; multiple files)</p>

<pre><code>/////// Organizer.h // Main header file that utilizes all other headers
#include &lt;wx/wx.h&gt;
#include &lt;wx/datectrl.h&gt;
#include &lt;wininet.h&gt;
#pragma comment(lib, "wininet.lib")
#include "Threading.h"
#include "MainDlg.h"
#include "svDialog.h"

///////// Threading.h // Please read the article given above
#include "ou_thread.h"
using namespace openutils;

extern HINTERNET hInternet; // both declared in MainDlg.cpp
extern HINTERNET hFtpSession;

class svThread : public Thread
{
private:
  char* ThreadName;
public:
  svThread(const char* szThreadName)
  {
    Thread::setName(szThreadName);
    this-&gt;ThreadName = (char* )szThreadName;
  }
  void run()
  {
    if(this-&gt;ThreadName == "Upload")
    {
    hInternet = InternetOpen(NULL, INTERNET_OPEN_TYPE_DIRECT, NULL, NULL, 0);
    hFtpSession = InternetConnect(hInternet, L"myserver.com", INTERNET_DEFAULT_FTP_PORT, L"user", L"pass", INTERNET_SERVICE_FTP, 0, 0);

    std::string filenameOnServer((char* )tb_file-&gt;GetValue().c_str()); // HERE..the tb_file..
    std::vector&lt;std::string&gt; filepathParts;
    __strexp(filenameOnServer, "\\", filepathParts); // this is user-defined function that will split a string (1st param) with the given delimiter (2nd param) to a vector (3rd param)
    filenameOnServer = filepathParts.at(filepathParts.size() - 1); // get only the filename

    if(FtpPutFile(hFtpSession, tb_file-&gt;GetValue().c_str(), (LPCWSTR)filenameOnServer.c_str(), FTP_TRANSFER_TYPE_BINARY, 0))
    {
     MessageBox(NULL, L"Upload Complete", L"OK", 0);
    }
    else
    {
     MessageBox(NULL, L"Upload Failed", L"OK", 0);
    }
    }
  }
};

////////// svDialog.h
class svDialog : public wxFrame
{
public:
  svDialog(const wxString &amp;title);
  void InitializeComponent();
  void ProcessUpload(wxCommandEvent &amp;event); // function (button event) that will start the UPLOAD THREAD
  wxTextCtrl *tb_file; // this is the textbox
  //....other codes
};

///////////svDialog.cpp
#include "Organizer.h"
Thread *UploadRoutine;

svDialog::svDialog(const wxString &amp;title) : wxFrame(...) // case unrelated
{
  InitializeComponent();
}
void svDialog::InitializeComponent()
{
  tb_file = new wxTextCtrl(...);
  //......other codes
}
void svDialog::ProcessUpload(wxCommandEvent &amp;event)
{
  UploadRoutine = new svThread("Upload");
  UploadRoutine-&gt;start();
  //......other codes
}

////// MainDlg.cpp // (MainDlg.h only contains the MainDlg class declaration and member function prototypes)
#include "Organizer.h"

HINTERNET hInternet;
HINTERNET hFtpSession;
IMPLEMENT_APP(MainDlg) // wxWidgets macro

bool MainDlg::OnInit() // wxWidgets window initialization function
{
  //......other codes
}
</code></pre>

<p>Well, as you can see in my code above, I wanted to get the content of tb_file (with tb_file->GetValue()) and pass it to the multi-threading function (void run()) for to be uploaded later.</p>

<p>Any kind of help would be appreciated!</p>

<p>Thanks. (and sorry for the long code..)</p>
