tengo un método Quiero importar desde un archivo DLL y tiene una firma de:DllImport y char *
BOOL GetDriveLetter(OUT char* DriveLetter)
He intentado
[DllImport("mydll.dll")]
public static extern bool GetDriveLetter(byte[] DriveLetter);
y
[DllImport("mydll.dll")]
public static extern bool GetDriveLetter(StringBuilder DriveLetter);
pero ninguno arrojó nada en la variable DriveLetter.
¿Qué significa UnmanagedType.I1? – Malfist
@Malfist, el valor I1 le dice al CLR que marque el valor como un entero de 1 byte. En realidad, esta muestra era incorrecta, ya que I4 es el valor correcto (actualizado hace un momento). En cuanto a por qué echar un vistazo a esta entrada de blog que escribí sobre calcular los valores de bool: http://blogs.msdn.com/jaredpar/archive/2008/10/14/pinvoke-and-bool-or-should-i-say-bool .aspx – JaredPar
Cuando lo hago I4, obtengo MarshalDirectiveException – Malfist