我有以下代码,我需要摆脱Microsoft.VisualBasic函数ASC():
Dim keyWithoutDashes As String = p_licenseKey.Replace("-", "").Trim.ToLower
Dim checksum As Int32 = 0
Dim modValue As Byte
Dim checkValue As Byte
Dim checkChar As Char
checksum = 0
checkValue = CByte(Asc(keyWithoutDashes.Substring(24, 1)))
For pos = 0 To 23
checksum += CByte(Asc(keyWithoutDashes.Substring(pos, 1)))
Next
checksum = checksum Mod 34
modValue = CByte(Asc(VALID_CHARACTERS_BACKWARD.Substring(checksum, 1)))
If modValue <> checkValue Then
m_keyErrorMessage = "Invalid LicenseKey"
Return False
End If
我尝试将int转换为int但没有成功。有什么建议吗?
我需要让代码在Microsoft可移植类库中运行。
答案 0 :(得分:1)
答案归功于Hans Passant上面的评论:
checksum = 0
checkValue = Encoding.ASCII.GetBytes(keyWithoutDashes.Substring(24, 1))(0)
For pos = 0 To 23
checksum += Encoding.ASCII.GetBytes(keyWithoutDashes.Substring(pos, 1))(0)
Next
checksum = checksum Mod 34
modValue = Encoding.ASCII.GetBytes(
VALID_CHARACTERS_BACKWARD.Substring(checksum, 1))(0)
If modValue <> checkValue Then
m_keyErrorMessage = "Invalid LicenseKey"
Return False
End If