title: A call to PInvoke function '[...]' has unbalanced the stack
body: <p>I'm getting this weird error on some stuff I've been using for quite a while. It may be a new thing in Visual Studio 2010 but I'm not sure.<br>
  I'm trying to call a unamanged function written in C++ from C#.<br>
  From what I've read on the internet and the error message itself it's got something to do with the fact that the signature in my C# file is not the same as the one from C++ but I really can't see it.<br>
  First of all this is my unamanged function below:  </p>
  
  <pre><code>TEngine GCreateEngine(int width,int height,int depth,int deviceType);
  </code></pre>
  
  <p>And here is my function in C#:  </p>
  
  <pre><code>[DllImport("Engine.dll", EntryPoint = "GCreateEngine", CallingConvention = CallingConvention.StdCall)]  
          public static extern IntPtr CreateEngine(int width,int height,int depth,int device);
  </code></pre>
  
  <p>When I debug into C++ I see all arguments just fine so thus I can only think it's got something to do with transforming from TEngine (which is a pointer to a class named CEngine) to IntPtr. I've used this before in VS2008 with no problem.</p>