pinvokestackimbalance - как это исправить или отключить?
исал VC ++ DLL. Объявление для одного из методов в dll выглядит следующим образом:
extern "C" _declspec(dllexport)
void startIt(int number)
{
capture = cvCaptureFromCAM(number);
}
Я использую эту DLL в коде C #, используя P / Invoke. Я делаю декларацию как:
[DllImport("Tracking.dll", EntryPoint = "startIt")]
public extern static void startIt(int number);
и я вызываю функцию в коде как:
startIt(0);
Теперь, когда эта строка встречается, компилятор выдает мне эту ошибку:
A call to PInvoke function 'UsingTracking!UsingTracking.Form1::startIt' 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.
Я не могу понять, почему выдает эту ошибку, так как подпись в управляемом и неуправляемом коде одинакова. Более того, на моей другой машине тот же код отлично работает в Visual Studio. Таким образом, это заставляет меня думать, что выброшенная ошибка является ошибочной.
Пожалуйста помоги.
Спасибо