title: __thiscall with __stdcall behaviour
body: <p>I am reverse engineering an old C++ code and I found something which I cannot understand how can be accomplisehd from a normal C++ code. The function signature, from the DLL, is a mangled name which can be recovered to <code>public: void __thiscall MyClass::MyClass(int)</code>. </p>
  
  <p>From the MS documentation, <code>__thiscall</code> functions have the <code>this</code> member, for non static methods, passed using the ECX register. Well, this particulcar function makes the correct use of the ECX register passing but also, from the disassembled code, the first parameter is not the <code>int</code> argument, but also a pointer to the object. </p>
  
  <p>This is what I can see from the DLL public names:</p>
  
  <pre><code>void __thiscall MyClass::MyClass(int);  
  main() {  
    MyClass *pmc;  
    MyClass *pmc2;  
    pmc = new MyClass(pmc2,0);  
  }
  </code></pre>
  
  <p>So, on this case, the constructor (and other methods also), seems to be defined as:</p>
  
  <pre><code>void __thiscall MyClass:MyClass(MyClass *arg0, int arg1)
  </code></pre>
  
  <p>Any ideas how something like this can be accomplished?</p>