首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

怎么调用C++ DLL方法,参数不会转换啊

2013-08-06 
求助如何调用C++ DLL方法,参数不会转换啊。。static arraybyte ^ compress(arraybyte ^source)//C++ 方

求助如何调用C++ DLL方法,参数不会转换啊。。


static array<byte> ^ compress(array<byte> ^source)//C++ 方法方法名参数


[DllImport(@"lzma_decode_module.dll", EntryPoint = "compress")]
public static extern byte[] compress([MarshalAs(UnmanagedType.LPArray)]byte[] _b);

报错:Cannot marshal 'return value': Invalid managed/unmanaged type combination.
貌似是[MarshalAs(UnmanagedType.LPArray) 这没用对? 我用UnmanagedType.SafeArray和ByValArray都是这个错。。。
应该怎么调用啊???
[解决办法]
array<byte>这个玩意,既然是dll输出的函数,你还是把这个类型换成基本类型的吧,那样在C#里就好转换了。

热点排行