Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Макрос EXT_COMMAND используется для определения команды расширения, объявленной с помощью макроса EXT_COMMAND_METHOD.
Команда расширения определяется следующим образом:
Синтаксис
void EXT_COMMAND(
_Name,
_Desc,
_Args
);
Параметры
_Name
Имя команды расширения. Это должно совпадать с параметром _Name, который используется для объявления команды расширения с помощью EXT_COMMAND_METHOD.
Так как EXT_COMMAND является макросом, _Name должно быть голым именем команды расширения и не должно быть заключено в кавычки или быть переменной.
_Desc
Строка, описывающая команду расширения.
_Args
Строка, описывающая аргументы, ожидаемые командой расширения. Сведения о форматировании строки _Args см. в разделе синтаксического анализа аргументов расширения.
Возвращаемое значение
Никакой
Замечания
Текст команды расширения не принимает никаких аргументов. Тем не менее, поскольку команда расширения объявлена как метод класса EXT_CLASS, он имеет доступ ко всем членам extExtension базового класса, некоторые из которых инициализированы для выполнения команды расширения.
Макрос EXT_COMMAND_METHOD должен использоваться для объявления команды расширения. Как и во всех объявлениях C++, объявление EXT_COMMAND_METHOD должно отображаться в исходных файлах перед определением EXT_COMMAND.
Когда обработчик отладчика вызывает метод команды расширения, он упаковывает вызов в блок try /кроме. Это защищает подсистему от некоторых типов ошибок в коде расширения; но, так как вызовы расширения выполняются в том же потоке, что и подсистема, они по-прежнему могут привести к сбою.
Этот макрос также создает функцию с именем _Name (которая вызывает метод, определенный макросом). Чтобы подсистема вызывала расширение, эта функция должна быть экспортирована из библиотеки расширений DLL.
Константа EXT_CLASS указывает имя класса C++, представляющего библиотеку расширений EngExtCpp.
EXT_CLASS
#ifndef EXT_CLASS
#define EXT_CLASS Extension
#endif
Значением по умолчанию EXT_CLASS является расширение . Это значение можно изменить, определив EXT_CLASS перед включением файла заголовка Engextcpp.hpp.
Каждая команда расширения в библиотеке объявляется как член класса EXT_CLASS с помощью макроса EXT_COMMAND_METHOD. Например, библиотека с двумя командами расширения extcmd и anotherextcmd, может определить класс EXT_CLASS следующим образом:
class EXT_CLASS : public ExtExtension
{
public:
EXT_COMMAND_METHOD(extcmd);
EXT_COMMAND_METHOD(anotherextcmd);
}
Команды расширения, объявленные с помощью EXT_COMMAND_METHOD, должны быть определены с помощью EXT_COMMAND и должны экспортироваться из библиотеки.
Макрос EXT_DECLARE_GLOBALS создает один экземпляр класса EXT_CLASS.
Макрос EXT_DECLARE_GLOBALS настраивает некоторые глобальные переменные для использования платформой расширения EngExtCpp. Это включает создание одного экземпляра класса EXT_CLASS, представляющего библиотеку расширений EngExtCpp.
Один из исходных файлов, скомпилированных в библиотеку расширений EngExtCpp, должен содержать следующую команду.
EXT_DECLARE_GLOBALS()
Требования
| Требование | Ценность |
|---|---|
| целевая платформа | Настольный |
| заголовка | engextcpp.hpp (include Engextcpp.hpp) |