[C#] j'arrive pas à passer mes varibles par reference.. :'(

j'arrive pas à passer mes varibles par reference.. :'( [C#] - C#/.NET managed - Programmation

Marsh Posté le 22-02-2004 à 17:11:29    

voila.. j'explique..
 
je dois utiliser une dll..
et on m'a donné sa définition, en VB.NET
 
 
ceci est donc juste à 100% :
 
 
' This function calls the SCardComand in the SCARD32.DLL
' .NET VB Sample
 

Code :
  1. <DllImport("SCARD32.DLL",_
  2.            EntryPoint:="SCardComand",_
  3.            SetLastError:=True,_
  4.            CallingConvention:=Callingconvention.Winapi,_
  5.            CharSet:=CharSet.Ansi,_
  6.            ExactSpelling:=True)> _
  7.   Public Shared Function SCardComand(_
  8.     ByRef handle As Integer,_
  9.     <MarshalAs(UnmanagedType.VBByRefStr)> ByRef cmd As String,_
  10.     ByRef cmdLen As Integer,_
  11.     <MarshalAs(UnmanagedType.VBByRefStr)> ByRef dataIn As String,_
  12.     ByRef dataInLen As Integer,_
  13.     <MarshalAs(UnmanagedType.VBByRefStr)> ByRef dataOut As String,_
  14.     ByRef dataOutLen As Integer_
  15.   ) As Integer
  16. End Function


 
 
je l'ai donc transformé en C# :
 

Code :
  1. [DllImport("SCARD32.DLL",
  2.    EntryPoint = "SCardComand",
  3.    SetLastError = true,
  4.    CallingConvention = CallingConvention.Winapi,
  5.    CharSet = CharSet.Ansi,
  6.    ExactSpelling = true)]
  7.  static extern int SCardComand(
  8.   int handle,
  9.   [MarshalAs(UnmanagedType.VBByRefStr)] ref String cmd,
  10.   int cmdLen,
  11.   [MarshalAs(UnmanagedType.VBByRefStr)] ref String dataIn,
  12.   int dataInLen,
  13.   [MarshalAs(UnmanagedType.VBByRefStr)] ref String dataOut,
  14.   int dataOutLen);


 
jusque la, ça va pas mal.. :)
 
mais maintenant j'aimerais bien utiliser cette fu***ng fonction à la noix..
 
je fait ça :
 

Code :
  1. string dIn = "";
  2.   string dOut = "1234567890";
  3.   string dCmd = "Device,Info,Type";
  4.   SCardComand(0,ref dCmd,0,ref dIn,0,ref dOut,200);


 
et ça me balance un beau :
 

Citation :

An unhandled exception of type 'System.NullReferenceException' occurred in WindowsApplication1.exe
 
Additional information: Object reference not set to an instance of an object.


 
 
[:le kneu]

Reply

Marsh Posté le 22-02-2004 à 17:11:29   

Reply

Marsh Posté le 22-02-2004 à 17:17:53    

tu es sur que tu n'as pas une erreur avec l'un de tes integer.
 
On dirait que une valeur null n'est pas permit ou un truc du genre
 

Reply

Marsh Posté le 22-02-2004 à 17:20:47    

ben j'avais utilisé cette fonction, à l'époque, en VB6 et avec des 0 ça passait bien.. :/
 
 
d'ailleurs j'ai essayé d'utiliser la fonction en VB.NET :
 

Code :
  1. Dim L As Integer
  2.         Dim D As String
  3.         Dim nil As String
  4.         'D = String(200, 0)
  5.         D = "chrisk, pov con!"
  6.         L = SCardComand(0, "Device,Info,Type", 0, nil, 0, D, 200)
  7.         Label1.Text = D
  8.         MessageBox.Show(L.ToString())


 
et ça ne modifie pas la valeur de D :sweat:  
pourtant la commande "Device,Info,Type" est juste..
 
je comprend pas trop..

Reply

Marsh Posté le 22-02-2004 à 17:25:51    

essaye  SCardComand(0, "Device,Info,Type", 0, nil, 0,out D, 200)

Reply

Marsh Posté le 22-02-2004 à 17:29:49    

happyharry a écrit :

essaye  SCardComand(0, "Device,Info,Type", 0, nil, 0,out D, 200)  


 
erreur de syntaxe... il compile pas.. [:sinclaire]

Reply

Marsh Posté le 22-02-2004 à 17:31:02    

c'est du deutch mais le code est compréhensible
 
http://www.fh-augsburg.de/informat [...] ellung.pdf


Message édité par bossamiral2 le 22-02-2004 à 17:31:52
Reply

Marsh Posté le 22-02-2004 à 17:31:32    

Mr yvele a écrit :


 
erreur de syntaxe... il compile pas.. [:sinclaire]


 
forcément, t en VB :D

Reply

Marsh Posté le 22-02-2004 à 17:32:52    

happyharry a écrit :


 
forcément, t en VB :D


 
oui mais tu as pris la ligne de mon code VB..  :D  
 
bref.. allé j'essaye...  :jap:

Reply

Marsh Posté le 22-02-2004 à 17:34:01    

happyharry a écrit :


 
forcément, t en VB :D


 
 
Form1.cs(131): Argument '6': cannot convert from 'out string' to 'ref string'
 
[:meganne]

Reply

Marsh Posté le 22-02-2004 à 17:34:50    

ben donc c t pas ca [:ddr555]

Reply

Marsh Posté le 22-02-2004 à 17:34:50   

Reply

Marsh Posté le 22-02-2004 à 17:37:45    

happyharry a écrit :

ben donc c t pas ca [:ddr555]


 
tu as regardé le lien que j'ai mis plus haut

Reply

Marsh Posté le 22-02-2004 à 17:39:51    

bossamiral2 a écrit :

c'est du deutch mais le code est compréhensible
 
http://www.fh-augsburg.de/informat [...] ellung.pdf


 
 :sweat:  
 
 
ptain mais ou t'as trouvé ça?!.. ça fait 1h que je cherche sur le site de towitoko.. sur google et compagnie..
 
 :sweat:  :sweat:  
 
 
merci 1000 fois..
 
[:roi]

Reply

Marsh Posté le 22-02-2004 à 17:40:33    

De rien a+

Reply

Marsh Posté le 22-02-2004 à 17:48:11    

happyharry a écrit :

ben donc c t pas ca [:ddr555]


 
merci quand même...  :)

Reply

Marsh Posté le 22-02-2004 à 17:51:01    

salut [:ptilapin]


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
Reply

Marsh Posté le 22-02-2004 à 18:14:02    


 
tu peux m'expliquer quand meme comment tu as trouvé ce liens?
 
merci.. je suis curieux de savoir..  :)  
 
 


 
wesh, ça va [:yo]

Reply

Marsh Posté le 22-02-2004 à 19:26:01    

google
 
dans le champs de recherche
 
SCARD32.DLL info  c#

Reply

Marsh Posté le 22-02-2004 à 21:26:19    

[:meganne]
 
 
je suis une merde! [:petrus75]

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed