关于平台调用

penglongfeng 2005-04-07 09:16:30
有一个C++程序,原形如下LZ77_API BOOL __stdcall Decompress(int compresscode,BYTE* src, int srclen, BYTE* dest).
此方法在VB中调用成功.本人在C#中调用如下
[DllImport("lz77.dll",CallingConvention=CallingConvention.StdCall,SetLastError=true)]
private static extern bool Decompress(int CompCode,[MarshalAs(UnmanagedType.LPArray)]byte[] ImportList,int length, [MarshalAs(UnmanagedType.LPArray)]ref byte[] GetList);

因为此方法的返回值为bool形,还需要返回一个byte数组.

bool isDone=Decompress(1,tempList,length,ref returnList);这是我的调用

发现返回值isDone显示成功,但是returnList总是不能返回正确的值.不知为什么.请高手指点
...全文
100 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Jim3 2005-04-07
  • 打赏
  • 举报
回复
你的这个问题和这个好相似
http://community.csdn.net/Expert/TopicView3.asp?id=3802426

不过你的接口少一个参数:返回的长度

penglongfeng 2005-04-07
  • 打赏
  • 举报
回复
out returnList也试了
njkanewang 2005-04-07
  • 打赏
  • 举报
回复
ref returnList改城out returnList试试

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧