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

一段c#代码转换成vb,有一句提示不对,请问该怎么改,多谢!

2013-10-31 
求教:一段c#代码转换成vb,有一句提示不对,请教该如何改,谢谢!!!求教:一段c#代码转换成vb,(范例将一幅32位

求教:一段c#代码转换成vb,有一句提示不对,请教该如何改,谢谢!!!

求教:一段c#代码转换成vb,(范例将一幅32位深的图像中所有像素的蓝色分量设为最大(255):)有一句提示不对,请教该如何改,谢谢!!!
下面C#代码用工具转换成VB:运行时Dim row As Pointer(Of Byte)这句提示出错


BitmapData bmd=bm.LockBits(new Rectangle(0, 0, 10, 10),    System.Drawing.Imaging.ImageLockMode.ReadOnly, bm.PixelFormat);
      int PixelSize=4;
      for(int y=0; y<bmd.Height; y++)
      {
        byte* row=(byte *)bmd.Scan0+(y*bmd.Stride);
        for(int x=0; x<bmd.Width; x++)
        {
          row[x*PixelSize]=255;
        }
      }

转换后的:

Dim bmd As BitmapData = bm.LockBits(New Rectangle(0, 0, 10, 10), System.Drawing.Imaging.ImageLockMode.[ReadOnly], bm.PixelFormat)
Dim PixelSize As Integer = 4
For y As Integer = 0 To bmd.Height - 1
Dim row As Pointer(Of Byte) = CType(bmd.Scan0, Pointer(Of Byte)) + (y * bmd.Stride)
For x As Integer = 0 To bmd.Width - 1
row(x * PixelSize) = 255
Next
Next

[解决办法]
VB.NET不支持指针。

哪有Pointer(Of Byte)这种写法!转换工具瞎转的。
[解决办法]
改用字节数组
[解决办法]
引用:
改用字节数组

+1
[解决办法]
引用:
谢谢 bdmh、liuyilin888 :
求教:改成 Dim row() As  Byte = CType(bmd.Scan0, Pointer(Of Byte)) + (y * bmd.Stride),红色部分该如何改,谢谢!!!


别用转换工具,自己想想源代码,用指针实现了什么,自己再定义一个 byte(),按指针的方法实现。
不同语言的代码转换,不是简单的变量名换来换去的,有的代码需要重写。

热点排行