VC++ dll yazdım.Dengesiz Stack!
extern "C" _declspec(dllexport)
void startIt(int number)
{
capture = cvCaptureFromCAM(number);
}
g/Invoke P kullanılarak bir C# kodu bu DLL kullanımı aşağıdaki gibidir: DLL yöntemlerden biri için bildirimidir. Ben beyanda:
[DllImport("Tracking.dll", EntryPoint = "startIt")]
public extern static void startIt(int number);
ve ben kodunda işlevini çağırır:
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.
: Bu satır karşılaşıldığında
Şimdi
startIt(0);
, derleyici bana bu hatayı atıyor
Hem yönetilen hem de yönetilmeyen kodlardaki imzanın aynı olduğundan neden bu hatayı attığını anlayamıyorum. Üstelik, başka bir makinede, aynı kod görsel stüdyonda mükemmel çalışıyor. Yani, bu bana atılan hatanın yanlış yönlendirici olduğunu düşünmeme neden oluyor.
LütfenYardım edin.
Teşekkür
Makinelerinizden biri x86 ve diğer x64? –
Hayır, her ikisi de x86'dır. Sadece bu bir Win7 ve diğer XP – Jayesh