En C# PInvoke, ¿cómo paso un búfer de cadena para que el DLL de C lo rellene y lo devuelva? ¿Cuál será la declaración de PInvoke?C# PInvocar la declaración de cadenas
La declaración de la función C es
int GetData(char* data, int buflength);
En C#, he declarado como
[DllImport(DllName)]
static extern Int32 GetData([MarshalAs(UnmanagedType.LPStr)]StringBuilder receiveddata, Int32 buflen);
¿Es correcto? Estoy pasando la variable StringBuilder así
int bufferLength = 32;
StringBuilder data = new StringBuilder(bufferLength);
int result = GetData(data, bufferLength);
Me gustaría saber si es correcto o no?
Gracias
Es correcto si funciona. No hay una razón obvia de que no funcione. –