Ключевое слово PtrSafe

Ключевое слово PtrSafe используется в этом контексте: оператор Declare.

Операторы Declare с ключевым словом PtrSafe представляют собой рекомендованный синтаксис. Для правильной работы операторов Declare с ключевым словом PtrSafe в среде разработки VBA7 на 32-разрядных и 64-разрядных платформах необходимо обновить все типы данных в операторе Declare (параметры и возвращаемые значения), предполагающие хранение 64-разрядных величин, чтобы можно было использовать тип LongLong для 64-разрядных целых чисел или тип LongPtr для указателей и дескрипторов.

Чтобы обеспечить обратную совместимость с VBA версии 6 и более ранних версий, используйте следующую конструкцию:

#If VBA7 Then 
Declare PtrSafe Sub... 
#Else 
Declare Sub... 
#EndIf

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

Добавление ключевого слова PtrSafe в оператор Declare означает только, что оператор Declare явно предназначен для 64-разрядных. Все типы данных в инструкции, которые должны хранить 64-разрядные (включая возвращаемые значения и параметры), по-прежнему должны быть изменены для хранения 64-разрядных объемов, используя LongLong для 64-разрядных целочислений или LongPtr для указателей и дескрипторов.

См. также

Поддержка и обратная связь

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.