64位的类型转换错误。类型不匹配

时间:2018-05-30 02:40:27

标签: vb6 type-mismatch

我在将VB6应用程序部署到64位窗口时遇到问题。当我运行EXE时,它会发出错误“type mismatch”

代码如下:

Private Sub writedate (loc as string)
    Dim dout(0 To 15) As Byte
    Dim strdate_day as string
    Dim strdate_mon as string
:
:
dout(0) = strdate_day 'This is the problem in 64 bit
dout(1) = strdate_mon 

End sub 

Public Function **Hex_Dec2**(ByVal val As String, ByVal start As Byte) As Byte
Dim MSB As Byte
Dim LSB As Byte
Dim Fbyte As Byte

              Fbyte = 0
              MSB = 0
              LSB = 0

              MSB = StrHEX_Dec(Mid(val, start, 1))
              LSB = StrHEX_Dec(Mid(val, start + 1, 1))
              Fbyte = (MSB * 16) + LSB

Hex_Dec2 = Fbyte
Debug.Print "val : " & val & " Fbyte : " & Fbyte
End Function

如果我在32位机器上运行EXE文件,它可以正常工作。绝对没有错误。

代码HEX_DEC2是一个将字符串转换为字节的特殊函数。 我必须使用此功能否则写入的值将不正确。当我执行:dout(0) = HEX_DEC2(strdate_day)时,它不会在64位上出现“类型不匹配”错误。由于技术原因,我不想运行此功能

奇怪的是,我用来开发应用程序的笔记本电脑也是64位,并且当我从源代码和EXE文件运行它时不会发出任何错误。

我如何克服这个问题?

0 个答案:

没有答案