P/Invoke & CallBack functions

  • Thread starter Thread starter Maxim Kazitov
  • Start date Start date
M

Maxim Kazitov

Hi,

In my project I call some C functions from C# code, and some times I should
use callback functions. Usually all works fine.

But in some cases I have following problem :

Error Message: Run Time Check Failure #0 The value of ESP was not properly
saved across a function call. This is usually a result of calling a function
declared with one calling convention with a function pointer declared with a
different calling convention

I implement call back through "delegate" statement. Is it possible to change
calling conversion for callback function in C# ?

Thanks
Max
 
Maxim,

I don't think that there is a way to do this. The only way I can think
to do this would be to create a shim of some kind in unmanaged code, which
would store the function pointer passed to it (which uses a standard calling
convention, which is what I imagine .NET passes) and then expose a function
which can be passed to the function you want to call with the correct
calling convention.

Hope this helps.
 
Back
Top