Tengo una DLL no administrada con una función que toma un puntero como argumento. ¿Cómo paso un puntero desde C# sin ser "inseguro"?¿Cómo puedo pasar un puntero desde C# a una DLL no administrada?
Aquí hay un código de ejemplo:
[DllImport(@"Bird.dll")]
private static extern bool foo(ushort *comport);
La entrada correspondiente en el encabezado:
BOOL DLLEXPORT foo(WORD *pwComport);
Cuando intento y simplemente eliminar la referencia (&comport
), me sale un error que dice: "Punteros y los búferes de tamaño fijo solo se pueden usar en un contexto inseguro. "
¿Cómo puedo solucionar esto?
¡Oh, hombre, eso es simple! –