| 

.NET C# Java Javascript Exception

5
Hallo alle zusammen,

ich habe folgenden C#-Code:

unsafe
{
byte * ptr = (byte *) data.Scan0.ToPointer( );

for ( int y = 0; y < height; y++ )
{
for ( int x = 0; x < width; x++, ptr++ )
{
count += ( (*ptr) >> 7 );
}
ptr += offset;
}
}

Nach dem kovertieren in VB.NET mit SharpDevelop4.0 kommt folgender Code heraus:

Dim ptr As Pointer(Of Byte) = CType(data.Scan0.ToPointer(), Pointer(Of Byte))
For y As Integer = 0 To height - 1
Dim x As Integer = 0
While x < width
count += ((ptr.Target) >> 7)
x += 1
ptr += 1
End While
ptr += offset
Next

Soviel ich weiß happert es Bei VB.NET mit der Pointer-Arithmetik.
Bei C# funktioniert es nur im Unsafe-Mode.
Mir fällt hier spontan nur ein, das ich diesen C#-Code in eine DLL packe und dann diese dann anwende.
Aber vielleicht hat jemand noch eine andere Idee.
News:
21.11.2011
ckfleis 41 3
1 Antwort
0
Unsafe Code ist in VB nicht möglich. Alternativ zu dem Weg über eine C#-Assembly kannst Du die benötigten API-Funktionen auch per Platform Invoke einbinden.
Siehe z.B. http://www.codeproject.com/KB/vbscript/how_to_do_pointers_in_visual_basic.aspx
24.11.2011
Marc Ambrosius 21 1

Stelle deine .net-Frage jetzt!
TOP TECHNOLOGIES CONSULTING GmbH