[VB6] Java nach VB6 konvertieren

03/10/2010 - 07:45 von Dieter Schleyer | Report spam
Hallo!

Ich habe hier einen Java-Code, den ich nach VB6 konvertieren möchte.

Mein Code in Java sieht folgendermaßen aus:

int myvalue;
myvalue = -18;

byte hibyte = (byte) (myvalue>>8);
byte lobyte = (byte) (myvalue&0xFF);

Das sieht dann folgendermaßen aus:

hibyte ist -1
lobyte ist -18

So, und jetzt habe ich dasselbe in VB6 probiert. Ich weiß, dass es in
VB6 keine signed bytes gibt. Darum will ich mich aber erst ganz am Ende
kümmern.

Also habe ich erstmal folgendes gemacht, um zu überprüfen, ob ich auch
in VB6 auf hibyte=-1 und lobyte -18 komme:

Dim myvalue&
myvalue = -18

hibyte = ShiftRight(myvalue, 8)
lobyte = myvalue And 255

Da komme ich aber auf folgende Werte:

hibyte ist 0 und lobyte ist -18.

Meine ShiftRight-Funktion sieht so aus:

Private Function ShiftRight(ByVal InitNum As Long, ByVal BitsRight As
Long) As Long
'Performs a bitwise right-shift
ShiftRight = CLng(InitNum / (2 ^ BitsRight))
End Function

Sieht jemand meinen Denkfehler?

Vielen Dank!
Dieter
 

Lesen sie die antworten

#1 G.Wietzorek
03/10/2010 - 09:53 | Warnen spam
Am 03.10.2010 07:45, schrieb Dieter Schleyer:
Hallo!

Ich habe hier einen Java-Code, den ich nach VB6 konvertieren möchte.

Mein Code in Java sieht folgendermaßen aus:

int myvalue;
myvalue = -18;

byte hibyte = (byte) (myvalue>>8);
byte lobyte = (byte) (myvalue&0xFF);

Das sieht dann folgendermaßen aus:

hibyte ist -1
lobyte ist -18

So, und jetzt habe ich dasselbe in VB6 probiert. Ich weiß, dass es in
VB6 keine signed bytes gibt. Darum will ich mich aber erst ganz am Ende
kümmern.



falsche NG, >> d.c.l.vbclassic

Das sollte adàquat sein:

Private Function GetHiByte(ByVal Value As Long) As Long
GetHiByte = (Value \ &H100) And &HFF
End Function

Private Function GetLoByte(ByVal Value As Long) As Long
GetLoByte = Value And &HFF
End Function


Vielen Dank!
Dieter




"Probleme kann man niemals mit derselben Denkweise lösen, durch die sie
entstanden sind."
Albert Einstein

Ähnliche fragen