I’m trying to code the “One-minute” example of reconstructMe SDK, however their SDK is in c++ I think, I succesfully created a console application as directed on their page (here), but I want to create a simple UI, however I’m not very familiar with Visual c++ (I do know something about c++), so I tried their example for C# (I’m pretty much familiar with their UI design) but I get this error when using the C# code provided (here):
A call to PInvoke function ‘Lala!Lala.Reme::reme_context_compile’ has
unbalanced the stack. This is likely because the managed PInvoke
signature does not match the unmanaged target signature. Check that
the calling convention and parameters of the PInvoke signature match
the target unmanaged signature.
I think is an issue of configuring the project or something like that.
The reconstructMe DLL is using the C calling convention (
Cdecl) and not the Windows calling convention (StdCall). They differ in how the stack is handled, which is why having an incorrect calling convention results in a stack imbalance.The default for p/Invoke is
StdCall, you need to manually set the CallingConvension parameter toCdeclon theDllImportattribute: