【发布时间】:2012-12-27 10:41:04
【问题描述】:
我有以下几行代码:
public static string getTrack1(string track1, int len)
{
IntPtr track1Ptr = UnsafeNativeMethods.Decrypt(track1, len);
Byte[] track1b = new Byte[200];
Marshal.Copy(track1Ptr, track1b, 0, track1b.Length);
return track1b.ToString();
}
解密方法的减速是:
internal static class UnsafeNativeMethods
{
[DllImport(_dllLocation, CallingConvention = CallingConvention.Cdecl)]
public static extern IntPtr Decrypt(string track1, int dataLen);
}
我从visual c++ 代码返回unsigned char*,每当我从c# 代码调用dll 时,它总是返回“System.Byte[]”而不是值。我在marshal 做错了什么吗?
请帮帮我
【问题讨论】:
标签: c# bytearray marshalling