在VB中将ANSI转换为.NET Unicode

时间:2014-07-25 12:36:07

标签: .net vb.net unicode ansi

我知道这个问题已经多次讨论过了,但我找不到能够成功实施的答案。

我正在将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。过去的一天我一直在谷歌搜索这个,但是如果我看到了答案,那就不会陷入困境。有人能指出我的解决方案吗?

提前致谢!

0 个答案:

没有答案