c#调用CopyMemory api函数

茂十茂 2008-12-20 10:17:44
[DllImport("kernel32.dll",EntryPoint="CopyMemory" ,SetLastError=true)]
internal static extern void CopyMemory(int Destination,byte Source,long Length);

以上为API声明

下面为调用,但出错,错在哪里呢?


byte[] pbyteImageBuffer;
int lAddrImage;

dwBufferSize = dwWidth * dwHeight;
pbyteImageBuffer=new byte[dwBufferSize];

axFvxImage1.GetImageAdrs(out lAddrImage, 0);
CopyMemory(lAddrImage, pbyteImageBuffer[0], dwBufferSize);

...全文
1143 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
net5i 2008-12-20
  • 打赏
  • 举报
回复
.NET已经封装了内存拷贝方法,搂主可以直接调用的:Marshal.Copy




soilwork 2008-12-20
  • 打赏
  • 举报
回复
try
System.Runtime.InteropServices.Marshal.Copy()

Copies data from a managed array to an unmanaged memory pointer, or from an unmanaged memory pointer to a managed array.
pcjbird 2008-12-20
  • 打赏
  • 举报
回复 1
[DllImport("kernel32.dll",EntryPoint="CopyMemory" ,SetLastError=true)]
internal static extern void CopyMemory(IntPtr Destination,IntPtr Source, uint Length);

???
wangping_li 2008-12-20
  • 打赏
  • 举报
回复
参考:
http://blog.csdn.net/Python/archive/2007/08/24/1757002.aspx
茂十茂 2008-12-20
  • 打赏
  • 举报
回复
谢谢net5i,我用Mershal.Copy OK了,但我担心用这个会不会有问题,因为网上说这个不太好用。

Marshal.Copy(pbyteImageBuffer,0,(IntPtr)lAddrImage,(int)dwBufferSize);

110,571

社区成员

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

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

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