Миграция битов Vba - Несоответствие типов в операторе "-" - PullRequest
2 голосов
/ 06 февраля 2020

Недавно мы начали переход на Office 365. В первый день после миграции пользователь сообщил о проблеме со следующим фрагментом кода VBA, используя библиотеку kernel32.dll:

'@Esposed
'@Folder System.Text
Option Explicit

Private Declare PtrSafe Sub CopyMemory Lib "kernel32.dll" Alias "RtlMoveMemory" (Byaval dst As Long, ByVal src As Long, ByVal length as Long) 

Private Const DEFAULT_CHARACTER_CAPACITY As Long = &H10
Pivate CurrentByteLength As Long
Private StringBuffer() As Byte

Private Sub Class_Initialize() 
    ReDim StringBuffer(0 To (DEFAULT_CHARACTER_CAPACITY * 2) - 1) 
                                                            '^ Type Mismatch!!!                             

End Sub

Оказывается, наша предыдущая версия Office (2016) была 32-разрядной, поэтому в итоге мы выполнили 2 миграции.

Я попытался изменить все ссылки Long на LongPtr и преобразовать все константы с помощью функции CLngPtr, но безуспешно. Есть идеи о том, что здесь происходит?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...