我知道这个问题已经多次讨论过了,但我找不到能够成功实施的答案。
我正在将VB6项目升级到VB.NET。 VB6项目使用第三方dll创建软件注册密钥,可以通过客户端计算机上的第二个dll解密,以测试有效的软件使用情况(例如,如果我给你我的软件,它将在我的名字上),和许可到期日。第二个dll位于数百个客户位置,并且更改为不同的许可方案最多也是困难的。因此,我需要利用我的VB.NET项目中的第一个dll来生成可以正确解释的密钥。
dll的开发人员告诉我它输出ANSI字符串,但据我所知,在VB.NET字符串中是Unicode。所以我需要将以下调用的字符串输出转换为Unicode:
' generate the serial number
If GenRegCode(msRegisteredName & msStationNumber, _
miRegOptions, _
0, _
1, _
liDay, _
liMonth, _
liYear, _
msSerialNumber) Then
' successful, convert ANSI msSerialNumber to Unicode, clean up, and set good return
msSerialNumber = Left(pfANSIToUnicode(msSerialNumber), 24)
' etc.
最后一个参数msSerialNumber传递给ByRef。
我也猜测我必须将从Unicode传递的第一个参数转换为ANSI,所以我想我需要两个函数 - UnicodeToANSI和ANSIToUnicode。过去的一天我一直在谷歌搜索这个,但是如果我看到了答案,那就不会陷入困境。有人能指出我的解决方案吗?
提前致谢!