¿Es simplemente la forma en que los bytes se combinan para "codificar" los datos?¿Cuál es la diferencia entre una cadena COM (BSTR) y una cadena .NET?
Tengo curiosidad porque me pregunto cómo un RCW toma automáticamente una cadena .NET y la transforma en COM BSTR. Supongo que solo forma un COM BSTR válido transformado de la cadena .NET.
Relacionado: ¿Podría construir mi propio BSTR válido utilizando un tipo de byte en .NET?
Gracias joncham . Muy útil. Supongo que me pregunto cuáles serían las diferencias si inspeccioné los bits y bytes. Ambos se almacenan en alguna parte. Ambos representan algo. ¿No son solo diferentes bits y bytes para representar lo mismo (una cadena de caracteres?) – richard
Sí, todos los datos son solo bytes ;-). El problema es quién asigna/desasigna esos bytes y las convenciones utilizadas al diseñar esos bytes. Por ejemplo, al asignar un BSTR, en realidad no recupera un puntero al inicio de la memoria asignada. Su puntero tiene 4 bytes en el espacio asignado, ya que los primeros cuatro bytes almacenan la longitud de la cadena. – joncham
@Richard DesLonde: sí, ambos son matrices de caracteres. Sin embargo, no puede usar ninguna cadena de caracteres como 'System.String', ya que cualquier constructor de' System.String' copiará la matriz de caracteres en otra ubicación de memoria. – codekaizen