J'essaie d'appeler une fonction C de C# si C++tableau Convertir <Byte>^données à octet const * Données - C++/CLR
donc en gros C# -> C++ -> C
En C#, j'ai byte [] octets - qui lit les informations du fichier. Je passe le tableau d'octets et la taille à C++.
En C++ j'obtiens le tableau d'octets et la taille mais je ne suis pas capable de convertir aux types de données spécifiques.
void Image::OpenMemFile(array<Byte>^ data, unsigned int size)
{
Free();
m_dataStream = data;
Byte const* streamData = &data[0]; // this is where it throws error
// Should I use marshaling here ? What call should that ;be ?
hImage = ::OpenMemImage(streamData , size);
modified = false;
}
// this is the function I need to call
EXIVSIMPLE_API HIMAGE OpenMemImage(const BYTE *data, unsigned int size)
{
// code
imgWrap->image = Exiv2::ImageFactory::open(data, size);
}
la fonction C, il doit appeler est
Image::AutoPtr ImageFactory::open(const byte* data, long size)
{
/// code
}
Je dois aider à convertir le tableau d'octets à l'octet const *. Je réalise que je dois utiliser Marshaling. Existe-t-il une fonction spécifique pour marshaler les tableaux en C++?
Toute aide est appréciée.
Merci