2009-08-13 6 views
0

j'ai accroché avec succès une fonction dll C#C# crochets dll: passant null comme paramètre

[DllImport ("ftusbsrv.dll", EntryPoint="FtEnumDevices")] 
public unsafe static extern bool FtEnumDevices(ref FT_SERVER_USB_DEVICE lpUsbDevices, ref ulong pulBufferSize, ref FT_ERROR_STATE lpES); 

J'ai besoin de passer null comme en tant que premier paramètre comme ci-dessous

FtEnumDevices(null, pulBufferSize,lpES); 

Je reçois ce qui suit erreur de compilation:

Argument '1': cannot convert from '' to 'ref FebulaTechWrapper.USBOverNetWrapper.FT_SERVER_USB_DEVICE'

Je dois savoir: Comment puis-je passer null comme premier paramètre?

+0

Il ne ressemble pas le premier paramètre est le problème ... désolé –

+0

l'erreur était pas affiché correcte Argument « 1 »: ne peut pas convertir '' à 'ref FebulaTechWrapper.USBOverNetWrapper.FT_SERVER_USB_DEVICE' –

+0

@Abdul - s'il vous plaît voir mon edit. –

Répondre

3

Je ne pense pas que null est votre problème - il semble que lpEs est un int dans votre code, mais ftusbsrv.dll attend un type de FebulaTechWrapper.USBOverNetWrapper.FT_ERROR_STATE.

Vous devrez recréer FT_ERROR_STATE dans votre code C# afin de pouvoir passer une instance à la méthode au lieu d'une int.

Modifier: Vous ne pouvez pas passer null à une méthode qui attend un argument ref. Un argument ref a besoin d'une référence, d'essayer quelque chose comme ceci:

FT_SERVER_USB_DEVICE dummy = null; 

FtEnumDevices(ref dummy, pulBufferSize, lpES); 
+0

désolé l'erreur n'a pas été posté correct Argument '1': ne peut pas convertir de '' à 'ref FebulaTechWrapper.USBOverNetWrapper.FT_SERVER_USB_DEVICE' –

Questions connexes