Serialización de cadenas
La invocación de plataforma copia los parámetros de cadena y los convierte del formato de .NET Framework (Unicode) al formato no administrado (ANSI), si es necesario. Dado que las cadenas administradas son inmutables, la invocación de plataforma no las vuelve a copiar desde la memoria no administrada a la memoria administrada cuando finaliza la función.
En la tabla siguiente se enumeran las opciones de serialización para las cadenas, se describe su uso y se proporciona un vínculo al ejemplo de .NET Framework correspondiente.
String | Descripción | Ejemplo |
---|---|---|
Por valor. | Pasa las cadenas como parámetros In. | MsgBox |
Como resultado. | Devuelve las cadenas desde código no administrado. | Cadenas |
Por referencia. | Pasa estructuras como parámetros In/Out mediante StringBuilder. | Búferes |
En una estructura por valor. | Pasa las cadenas en una estructura que es un parámetro In. | Structs |
En una estructura por referencia (char*). | Pasa las cadenas en una estructura que es un parámetro In/Out. La función no administrada espera un puntero a un búfer de caracteres y el tamaño del búfer es un miembro de la estructura. | Cadenas |
En una estructura por referencia (char[]) . | Pasa las cadenas en una estructura que es un parámetro In/Out. La función no administrada espera un búfer de caracteres insertado. | OSInfo |
En una clase por valor (char*). | Pasa las cadenas en una clase (una clase es un parámetro In/Out). La función no administrada espera un puntero a un búfer de caracteres. | OpenFileDlg |
En una clase por valor (char[]) . | Pasa las cadenas en una clase (una clase es un parámetro In/Out). La función no administrada espera un búfer de caracteres insertado. | OSInfo |
Como una matriz de cadenas por valor. | Crea una matriz de cadenas que se pasa por valor. | Matrices |
Como una matriz de estructuras que contienen cadenas por valor. | Crea una matriz de estructuras que contienen cadenas y la matriz se pasa por valor. | Matrices |
Vea también
Colaborar con nosotros en GitHub
El origen de este contenido se puede encontrar en GitHub, donde también puede crear y revisar problemas y solicitudes de incorporación de cambios. Para más información, consulte nuestra guía para colaboradores.