supongamos que tengo x.dll en C++ que se parece a este¿Cómo se especifica si tomar posesión de la cadena almacenada o no?
MYDLLEXPORT
const char* f1()
{
return "Hello";
}
MYDLLEXPORT
const char* f2()
{
char* p = new char[20];
strcpy(p, "Hello");
return p;
}
Ahora, supongamos que quiero utilizar esto en C#
[DllImport("x.dll")]
public static extern string f1();
[DllImport("x.dll")]
public static extern string f2();
¿Hay alguna manera de saber CLR para tener una fuerte identificación de la cadena devuelta desde f2, pero no f1? El hecho es que el hecho de que la cadena devuelta por f1 sea finalmente liberada, eliminada o lo que sea por GC es igualmente mala con el hecho de que la cadena devuelta por f2 no lo hará. Espero que la pregunta sea clara. Gracias de antemano
Gracias. Lamento no poder haberte votado (límite diario alcanzado), ¡el enlace que proporcionaste era lo que necesitaba! –
@Armen: siempre puedes volver mañana ...;) –