c#中的Marshal unsigned char **

时间:2011-02-10 20:30:31

标签: c# c++

我正在尝试编组unsigned char **以便从C#调用该方法。

我从c ++创建一个dllexport

extern "C"
{
  __declspec(dllexport) void ConvertToByte(char *filename,unsigned char** data)

  {
      char temp[100];
      sprintf(temp,filename);
       BITMAPINFO *info;
      *data=(unsigned char *)LoadDIBitmap(temp, &info);
  }

这里是dllimport

[DllImport("bmpToByte.dll", CharSet = CharSet.Ansi,CallingConvention = CallingConvention.Cdecl)]
        public static extern void ConvertToByte(string pame, byte[] data);

我想从这里获取byte []数据(图像)作为结果。 但我不能接受它。

1 个答案:

答案 0 :(得分:1)

尝试使用ref,没试过自己

    [DllImport("bmpToByte.dll", CharSet = CharSet.Ansi,CallingConvention = CallingConvention.Cdecl)]
    public static extern void ConvertToByte(string pame, ref byte[] data);