首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将array<Byte>^数据转换为常量字节*数据- C++/CLR

将array<Byte>^数据转换为常量字节*数据- C++/CLR
EN

Stack Overflow用户
提问于 2010-02-04 02:30:18
回答 1查看 1.2K关注 0票数 0

我正在尝试通过c ++从C#调用C语言中的函数

所以基本上就是C# -> C++ - >C

在C#中,我有byte[]字节-它从文件中读取信息。我将字节数组和大小传递给C++。

在C++中,我可以获得字节数组和大小,但不能转换为特定的数据类型。

代码语言:javascript
复制
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 ,&nbsp;size);
    modified = false;
}

// this is the function I&nbsp;need to call 
EXIVSIMPLE_API HIMAGE OpenMemImage(const&nbsp;BYTE *data, unsigned int size)
{
   // code
        imgWrap->image = Exiv2::ImageFactory::open(data, size);

}

它需要调用的C函数是

代码语言:javascript
复制
Image::AutoPtr ImageFactory::open(const byte* data, long size)
    {
      /// code
    }

我需要帮助将字节数组转换为const byte*。我意识到我需要使用封送处理。在C++中有一个特定的函数来封送数组吗?

任何帮助都是非常感谢的。

谢谢

EN

回答 1

Stack Overflow用户

发布于 2010-10-19 23:09:33

代码语言:javascript
复制
pin_ptr<unsigned char> pin_buffer = &data[0];
unsigned char* pData = pin_buffer;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2194413

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档