Pilha desequilibrada!

Eu escrevi uma dll VC ++. A declaração para um dos métodos na DLL é a seguinte:

extern "C" _declspec(dllexport)
void startIt(int number)
{
     capture = cvCaptureFromCAM(number);
}

Eu uso essa dll em um código C # usando P / Invoke. Faço a declaração como:

[DllImport("Tracking.dll", EntryPoint = "startIt")]
        public extern static void startIt(int number);

e eu chamo a função no código como:

startIt(0);

Agora, quando essa linha é encontrada, o compilador está me lançando este erro:

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.

Não consigo entender por que está lançando esse erro, pois a assinatura no código gerenciado e não gerenciado é a mesma. Além disso, na minha outra máquina, o mesmo código está funcionando perfeitamente no visual studio. Então, isso me faz pensar que o erro lançado é incorreto.

Por favor ajude.

obrigado

questionAnswers(0)

yourAnswerToTheQuestion