erreur lors de l'appel de la fonction ,[Un appel à PInvoke fonction asymétrique de la pile]

j'ai code suivant , une fois que je lance mon application, j'obtiens cette erreur

quelqu'un sait comment je corriger cette erreur?

ERREUR:

Un appel à PInvoke fonction " testcamera!EDSDKLib.EDSDK::EdsDownloadEvfImage' a déséquilibré la pile. C'est probablement parce que la gestion de PInvoke la signature ne correspond pas à la non géré cible signature. Vérifiez que la convention d'appel et les paramètres de la PInvoke signature correspondre à la cible non géré signature

 IntPtr cameraDev;
bool LVrunning = false;
uint err = EDSDK.EDS_ERR_OK;
uint device = 0;
IntPtr MemStreamRef = new IntPtr(0);
IntPtr EvfImageRef = new IntPtr(0);
PictureBox pbLV;
public LiveView(IntPtr c, PictureBox p)
{
cameraDev = c;
pbLV = p;
}
internal void StartLiveView()
{
//LVrunning = true;
//int i = 0;
//Get the output device for the live view image
err = EDSDK.EdsGetPropertyData(cameraDev, EDSDK.PropID_Evf_OutputDevice, 0, out device);
Debug.WriteLineIf(err != EDSDK.EDS_ERR_OK, String.Format("Get Property Data failed: {0:X}", err));
Debug.WriteLineIf(err == EDSDK.EDS_ERR_OK, String.Format("Liveview output is: {0:x}", device));
Thread.Sleep(1000);
//Set the computer as live view destination
if (err == EDSDK.EDS_ERR_OK)
{
err = EDSDK.EdsSetPropertyData(cameraDev, EDSDK.PropID_Evf_OutputDevice, 0,
Marshal.SizeOf(EDSDK.EvfOutputDevice_PC), EDSDK.EvfOutputDevice_PC);
Debug.WriteLine(String.Format("Liveview output to computer: {0:X}", err));
}
//Create a memory stream for the picture
if (err == EDSDK.EDS_ERR_OK)
{
err = EDSDK.EdsCreateMemoryStream(0, out MemStreamRef);
Debug.WriteLine(String.Format("Create Memory Stream: {0:X}", err));
}
//Get a reference to a EvfImage
if (err == EDSDK.EDS_ERR_OK)
{
**//i get error here**
**err = EDSDK.EdsCreateEvfImageRef(MemStreamRef, out EvfImageRef);** 
Debug.WriteLine(String.Format("Create Evf Imaage Ref: {0:X}", err));
}
Thread.Sleep(2000);
}
  • veuillez fournir plus d'informations -dllimport, EdsDownloadEvfImage signature
  • c'est mon dllimport, [DllImport("EDSDK.dll")] public static extern uint EdsCreateEvfImageRef(IntPtr inStreamRef, hors IntPtr outEvfImageRef);
  • et qu'est-ce que la fonction native de signature?
InformationsquelleAutor user1400 | 2010-09-20