vb.net 怎样定义指针?指针之间怎样转换?急!!! 15
在C#.net中有一句代码是这样的:Bitmapbmp=newBitmap(……);BitmapDatabmd=bmp.LockBits(……);byte*row=(by...
在C#.net 中有一句代码是这样的:
Bitmap bmp = new Bitmap( …… );
BitmapData bmd = bmp.LockBits( …… ) ;
byte* row = (byte*)bmd.Scan0 + bmd.Stride ;
bmd.Scan0 是一个IntPtr (IntPtr 是用于表示指针或句柄的平台特定类型)
在VB.net中如何实现这一句代码:byte* row = (byte*)bmd.Scan0 + bmd.Stride ?
即我要在VB.net中也声明一个字节指针来指向它,当然首先要将bmd.Scan0 转换为字节指针,请问怎么实现?能举个例子说明吗?我只有15分了! 展开
Bitmap bmp = new Bitmap( …… );
BitmapData bmd = bmp.LockBits( …… ) ;
byte* row = (byte*)bmd.Scan0 + bmd.Stride ;
bmd.Scan0 是一个IntPtr (IntPtr 是用于表示指针或句柄的平台特定类型)
在VB.net中如何实现这一句代码:byte* row = (byte*)bmd.Scan0 + bmd.Stride ?
即我要在VB.net中也声明一个字节指针来指向它,当然首先要将bmd.Scan0 转换为字节指针,请问怎么实现?能举个例子说明吗?我只有15分了! 展开
1个回答
展开全部
Imports System.Runtime.InteropServices
ByVal AesKey() As Byte
Dim AesKeyObj As GCHandle = GCHandle.Alloc(AesKey, GCHandleType.Pinned)
Dim AesKeyPtr As IntPtr = AesKeyObj.AddrOfPinnedObject
'AesKeyPtr 就是AesKey的指针
If AesKeyObj.IsAllocated Then AesKeyObj.Free()
ByVal AesKey() As Byte
Dim AesKeyObj As GCHandle = GCHandle.Alloc(AesKey, GCHandleType.Pinned)
Dim AesKeyPtr As IntPtr = AesKeyObj.AddrOfPinnedObject
'AesKeyPtr 就是AesKey的指针
If AesKeyObj.IsAllocated Then AesKeyObj.Free()
追问
那在VB.net 中如何实现和下面c#语言写的代码有同样的功能:
byte* row ;
int i ;
row=(byte*)bmd.Scan0 + bmd.Stride ;(bmd是一个BitmapData)
for(i=0 ; i <10 ;i++)
{
row[i+1]=i+1 ;
row[i+2]=i+2 ;
row[i+3]=i+3 ;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询