title: c++ Calling class method inside same method
body: <p>I´m writing the clsLog class:</p>
  
  <pre><code>// This is the main DLL file.
  
  #include "stdafx.h"
  
  #include &lt;time.h&gt;
  
  #include &lt;fstream&gt;
  #include &lt;iostream&gt;
  #include &lt;string&gt;
  
  #include "clsLog.h"
  
  
  std::string     m_strCurLogUser; 
  int         m_iCurLogAction;        
  int         m_iCurLogLevel;     
  std::ofstream           m_oCurLogFile;
  
  // 
  // LogInit
  // Initilize the log parameters of the system.
  // The FileName will be the file name that the system will log the messages (LOG.TXT is the default if no names are given).
  // The DatabaseName and TableName specifies the database and table name to be used for log. The default is "LOG_DATABASE" and "LOG_TABLE"
  // will be done.
  // The Action shall be an OR with all the options. Att: If an option is giver (ex: Database) and an invalid name is given, then an error will occur.
  //
  // The default log level is zero (0). So every log with a level upper than that will be logged. A change to the level must be done 
  // using the SetLogLevel method.
  //
  // return = 0: Success
  //      1: Failure
  //
  int LogInit (std::string FileName,      // Initialize the log file/connection.
               std::string DatabaseName,  // Database name to connect to.
               std::string TableName,     // Table name to connect to.
               std::string UserName,      // User name to log into
               int Action)                // Action to be done.
  {
      //
      // If the file is already open, someone is calling that function before closing the previous one. Error.
      //
      if (m_oCurLogFile.is_open ())
      {
          std::string msg;
  
          msg = "LogInit called for " + FileName + " witout closing previous session. Error";
          this-&gt;clsLog::Log (msg);
      }
  
          // Do some stuff
  
      return 0;
  }
  
  // 
  // Log
  // Logs the Message according to its Level.
  //
  // return = 0: Success
  //          1: Failure
  //
  int Log (std::string Message, int Level) // Register a log according to the log state.
  {
      time_t now;
      struct tm ptm;
      char buffer [32];
  
      //
      // If the sent message level is below the current level, abort.
      //
      if (Level &lt; m_iCurLogLevel)
          return 1;
  
  
      // Get the current date and time and convert it to the time structure (ptm)
      now = time (NULL);
      localtime_s (&amp;ptm, &amp;now);
  
      //
      // Format the time structure: DD/MM/AAAA HH:MM:SS)
      strftime (buffer, 32, "%D/%M/%Y %H:%M:%S", &amp;ptm);
  
  
      // Check if needs to be logged on stdio
      //
      if ((m_iCurLogLevel &amp; LOGACTION_STDOUT) == LOGACTION_STDOUT)
      {
          cout &lt;&lt; buffer + " " + Message; 
      }
  
      return 0;
  }
  </code></pre>
  
  <p>I´m not being able to compile. I´m getting the following error at </p>
  
  <pre><code>this-&gt;clsLog::Log (msg);
  </code></pre>
  
  <p>C2227 error on left of '->Log' must point to a class/struct/union/generic type. Using VS2010, Win32 application.</p>
  
  <p>Help appreciated.</p>
  
  <p>Rds</p>