0
我試圖從C#調用一個函數用C雖然C++轉換陣列<Byte> ^數據爲const字節*數據 - C++/CLR
所以基本上C# - > C++ - 「ç
在C#,我有字節[]字節 - 從文件中讀取信息。我將字節數組和大小傳遞給C++。
在C++中,我得到了字節數組和大小,但我無法轉換爲特定的數據類型。
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);
}
需要調用C函數是
Image::AutoPtr ImageFactory::open(const byte* data, long size)
{
/// code
}
我需要在字節數組轉換爲const BYTE *提供幫助。我意識到我需要使用馬沙拉。是否有一個特定的函數來封送C++中的數組?
任何幫助表示讚賞。
謝謝