Necesito su ayuda con el siguiente escenario:¿Cómo puedo pasar datos MemoryStream a no administrado C++ DLL utilizando P/Invoke
estoy leyendo algunos datos de hardware en un MemoryStream (C#) y que necesita para pasar estos datos en memoria a un dll implementado en C++ no administrado (usando el puntero ??). Los datos leídos (en la corriente) es muy grande (megabytes). Entiendo que puedo P/Invoke esta DLL pero lo que no estoy seguro es cómo pasar el puntero del/de referencia de los datos de la secuencia a la API de C++?
Debo admitir que estoy confundido ya que soy nuevo en C# - ¿Debo usar inseguro/fijo ya que los datos son grandes o son irrelevantes ya que el objeto MemoryStream es administrado por GC? Algún ejemplo de código/descripción detallada sería muy útil. Gracias
Firma del API no administrada:
BOOL doSomething (void * rawData, int dataLength)
¿Qué tipo de datos requiere el C++ dll? – scottm
Requiere datos sin procesar - byte/void *. Puedo cambiar la API dll según sea necesario. –