我在将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文件运行它时不会发出任何错误。
我如何克服这个问题?