macro EXT_COMMAND (engextcpp.hpp)
A macro EXT_COMMAND é usada para definir um comando de extensão que foi declarado usando a macro EXT_COMMAND_METHOD .
Um comando de extensão é definido da seguinte maneira:
Sintaxe
void EXT_COMMAND(
_Name,
_Desc,
_Args
);
Parâmetros
_Name
O nome do comando de extensão. Isso deve ser o mesmo que o parâmetro _Name usado para declarar o comando de extensão usando EXT_COMMAND_METHOD.
Como EXT_COMMAND é uma macro, _Name deve ser o nome nu do comando de extensão e não deve ser colocado entre aspas ou ser uma variável.
_Desc
Uma cadeia de caracteres que descreve o comando de extensão.
_Args
Uma cadeia de caracteres que descreve os argumentos esperados pelo comando de extensão. Para obter informações sobre como a cadeia de caracteres _Args é formatada, consulte Analisando argumentos de extensão.
Retornar valor
Nenhum
Comentários
O corpo do comando de extensão não usa argumentos. No entanto, como o comando de extensão é declarado como um método da classe EXT_CLASS , ele tem acesso a todos os membros da classe base ExtExtension , alguns dos quais são inicializados para a execução do comando de extensão.
A macro EXT_COMMAND_METHOD deve ser usada para declarar o comando de extensão. Assim como acontece com todas as declarações C++, a declaração EXT_COMMAND_METHOD deve aparecer nos arquivos de origem antes da definição de EXT_COMMAND.
Quando o mecanismo de depurador chama um método de comando de extensão, ele encapsula a chamada em um bloco try/except . Isso protege o mecanismo contra alguns tipos de bugs no código de extensão; mas, como as chamadas de extensão são executadas no mesmo thread que o mecanismo, elas ainda podem causar uma falha.
Essa macro também cria uma função chamada _Name (que chama o método definido pela macro). Para que o mecanismo chame a extensão, essa função deve ser exportada da DLL da biblioteca de extensões.
A constante EXT_CLASS especifica o nome da classe C++ que representa a biblioteca de extensões EngExtCpp.
EXT_CLASS
#ifndef EXT_CLASS
#define EXT_CLASS Extension
#endif
O valor padrão de EXT_CLASS é Extension. Você pode alterar esse valor definindo EXT_CLASS antes de incluir o arquivo de cabeçalho Engextcpp.hpp.
Cada comando de extensão na biblioteca é declarado como membro da classe EXT_CLASS usando a macro EXT_COMMAND_METHOD. Por exemplo, uma biblioteca com dois comandos de extensão, extcmd e anotherextcmd, pode definir a classe EXT_CLASS da seguinte maneira:
class EXT_CLASS : public ExtExtension
{
public:
EXT_COMMAND_METHOD(extcmd);
EXT_COMMAND_METHOD(anotherextcmd);
}
Os comandos de extensão que foram declarados usando EXT_COMMAND_METHOD devem ser definidos usando EXT_COMMAND e devem ser exportados da biblioteca.
A macro EXT_DECLARE_GLOBALS cria uma única instância da classe EXT_CLASS.
A macro EXT_DECLARE_GLOBALS configura algumas variáveis globais para uso pela estrutura de extensão EngExtCpp. Isso inclui a criação de uma única instância da classe EXT_CLASS que representa a biblioteca de extensões EngExtCpp.
Um dos arquivos de origem a serem compilados na biblioteca de extensão EngExtCpp deve incluir o comando a seguir
EXT_DECLARE_GLOBALS()
Requisitos
Requisito | Valor |
---|---|
Plataforma de Destino | Área de Trabalho |
Cabeçalho | engextcpp.hpp (inclua Engextcpp.hpp) |