我正在尝试在.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
由于
答案 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代码。