ошибка при типизации в 64 бит.несоответствие типов - PullRequest
0 голосов
/ 30 мая 2018

У меня проблема с развертыванием приложений VB6 в 64-битных окнах.Когда я запускаю EXE, он выдает ошибку "несоответствие типов"

Код ниже:

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

Если я запускаю файл EXE на 32-битной машине, он работает нормально.Абсолютно без ошибок.

Код HEX_DEC2 - это специальная функция, которая преобразует строку в байт. Я должен использовать эту функцию в противном случае записанное значение будет неправильным.Когда я делаю: dout(0) = HEX_DEC2(strdate_day), это не дает ошибку «несоответствие типов» на 64-битной.По технической причине я не хочу запускать эту функцию

Странно, но ноутбук, который я использую для разработки приложения, тоже 64-битный и не выдает никакой ошибки при запуске из обоихисходный код и файл EXE.

Как мне решить эту проблему?

...