У меня есть проект VBA, который делает 3 вызова в стороннюю dll следующим образом:
Private Declare Function cm_checkprotection Lib "ACPPYRAMID.DLL" Alias "CM_CheckProtection" (ByVal options As Long) As Long
Private Declare Function cm_getextendederror Lib "ACPPYRAMID.DLL" Alias "CM_GetExtendedError" (ByVal ExtErr As Any) As Long
Private Declare Function cm_getproductkeya Lib "ACPPYRAMID.DLL" Alias "CM_GetProductKeyA" (ByVal ProductKey As Any) As Long
Я пытаюсь перенести этот проект в 64-битный Excel, но когда я добавляю «PtrSafe» в объявление, Excel выдает ошибку «Ожидается: выражение», как показано на прикрепленном изображении.
Любая идея, как решить эту проблему?
ТИА,
откровенный
ИЛИ если бы вы посмотрели на пару строк в своем коде, вы бы получили ответ...Private Declare PtrSafe Function Shellexecute... ;)
@SiddharthRout - даже просто поиск VBA PtrSafe возвращает Страница МС в качестве первого результата.
Чтобы ответить на ваш вопрос следующий, это тоже LongPtr, а не PtrLong.


Сместите положение на
Private Declare PtrSafe Function
Если бы вы набрали
PtrSafe Declareв Google, вы бы получили ответ...