VB6中的函数AscB等效于VB.net

时间:2012-04-20 14:38:07

标签: vb.net vb6 vb6-migration

我正在尝试在.net应用中使用一些VB6代码。它使用的函数AscB不再可用。我需要在.net中使用什么?

提取函数的使用方法(函数在结束的第三行)....

' Combine each block of 4 bytes (ascii code of character) into one long
' value and store in the message. The high-order (most significant) bit of
' each byte is listed first. However, the low-order (least significant) byte
' is given first in each word.
lBytePosition = 0
lByteCount = 0
Do Until lByteCount >= lMessageLength
    ' Each word is 4 bytes
    lWordCount = lByteCount \ BYTES_TO_A_WORD

    ' The bytes are put in the word from the right most edge
    lBytePosition = (lByteCount Mod BYTES_TO_A_WORD) * BITS_TO_A_BYTE
    lWordArray(lWordCount) = lWordArray(lWordCount) Or _
        LShift(AscB(Mid(sMessage, lByteCount + 1, 1)), lBytePosition)
    lByteCount = lByteCount + 1
Loop

由于

3 个答案:

答案 0 :(得分:3)

AscB功能仅适用于8字节字符串。但是,您可以(可能)通过编写自己的函数来解决它。

Public Function AscB (value as Char) as Byte
    return System.Convert.ToByte(value)
End Function

答案 1 :(得分:3)

来自MSDN Library:

AscB 函数与字符串中包含的字节数据一起使用。

AscB 返回第一个字节,而不是返回第一个字符的字符代码

所以以下内容应该有效:

Encoding.ASCII.GetBytes(value).First

值为Char

答案 2 :(得分:0)

Gent,非常感谢您的回复......我的代码是用VB6编写的MD5加密类的一部分。在周末,我遇到了一个我不知道的.net类... System.Security.Cryptography,它给了我5行代码所需的加密,而不是100行的VB6代码。非常感谢您的努力。

BTW你的答案都有效。虽然我需要更多地调整VB6代码。