1

我正在尝试在 .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

谢谢

4

3 回答 3

3

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

Public Function AscB (value as Char) as Byte
    return System.Convert.ToByte(value)
End Function
于 2012-04-20T15:06:37.107 回答
3

来自 MSDN 库:

AscB函数用于字符串中包含的字节数据。

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

所以以下应该工作:

Encoding.ASCII.GetBytes(value).First

其中价值是Char

于 2012-04-20T15:52:55.813 回答
0

绅士,非常感谢您的回复...我拥有的代码是用 VB6 编写的 MD5 加密类的一部分。上周末,我遇到了一个我不知道的 .net 类... System.Security.Cryptography 它为我提供了我需要的 5 行代码而不是 100 多行 VB6 代码的加密。非常感谢您的努力。

顺便说一句,您的两个答案都有效。尽管我需要更多地调整 VB6 代码。

于 2012-04-23T09:49:18.167 回答