Ошибка при интеграции камеры в MS Access - PullRequest
0 голосов
/ 06 марта 2019

Я получил код от:

https://www.developerfusion.com/thread/46191/how-to-capture-picture-using-webcam-in-vb60/

Однако при использовании этого кода я получил ошибку компиляции>

Код в этом проекте должен быть обновлен дляиспользовать на 64-битных системах.Пожалуйста, просмотрите и обновите Объявление заявлений, а затем пометьте их атрибутом PtrSafe.

Я использовал:

#If VBA7 Then
    Private Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal ms As LongPtr)
#Else
    Private Declare Sub Sleep Lib "kernel32" (ByVal ms as Long)
#End If

Не работает.

1 Ответ

1 голос
/ 09 марта 2019

Условная компиляция (#If VBA7) не требуется, если ваша БД не должна работать на Office 2007 или ниже.Если самая старая версия Office 2010, вам просто нужно

Private Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal ms As Long)

, потому что VBA7 преобразует LongPtr в тип данных Long в Office x86 и в LongLong в Office x64.

Распознать аргумент ms остается Long, поскольку это не указатель / дескриптор.См. Как преобразовать объявления Windows API в VBA для 64-разрядных для получения дополнительной информации.

Если вам требуется поддержка старых версий Office перед использованием VBA7:

#If VBA7 Then
  Private Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal ms As Long)
#Else
  Private Declare Sub Sleep Lib "kernel32" (ByVal ms as Long)
#End If
...