EXT_COMMAND 매크로(engextcpp.hpp)
EXT_COMMAND 매크로는 EXT_COMMAND_METHOD 매크로를 사용하여 선언된 확장 명령을 정의하는 데 사용됩니다.
확장 명령은 다음과 같이 정의됩니다.
구문
void EXT_COMMAND(
_Name,
_Desc,
_Args
);
매개 변수
_Name
확장 명령의 이름입니다. EXT_COMMAND_METHOD 사용하여 확장 명령을 선언하는 데 사용되는 _Name 매개 변수와 동일해야 합니다.
EXT_COMMAND 매크로이므로 _Name 확장 명령의 맨 이름이어야 하며 따옴표로 묶거나 변수로 묶어서는 안 됩니다.
_Desc
확장 명령을 설명하는 문자열입니다.
_Args
확장 명령에서 예상하는 인수를 설명하는 문자열입니다. _Args 문자열의 형식을 지정하는 방법에 대한 자세한 내용은 확장 인수 구문 분석을 참조하세요.
반환 값
없음
설명
확장 명령의 본문은 인수를 사용하지 않습니다. 그러나 확장 명령은 EXT_CLASS 클래스의 메서드로 선언되므로 ExtExtension 기본 클래스의 모든 멤버에 액세스할 수 있으며, 그 중 일부는 확장 명령 실행을 위해 초기화됩니다.
매크로 EXT_COMMAND_METHOD 사용하여 확장 명령을 선언해야 합니다. 모든 C++ 선언과 마찬가지로 EXT_COMMAND_METHOD 선언은 EXT_COMMAND 정의 앞에 소스 파일에 표시됩니다.
디버거 엔진이 확장 명령 메서드를 호출하면 호출을 try/except 블록으로 래핑합니다. 이렇게 하면 확장 코드의 일부 버그 유형으로부터 엔진이 보호됩니다. 하지만 확장 호출은 엔진과 동일한 스레드에서 실행되므로 여전히 작동이 중단될 수 있습니다.
또한 이 매크로는 _Name (매크로에서 정의한 메서드를 호출함)라는 함수를 만듭니다. 엔진이 확장을 호출하려면 확장 라이브러리 DLL에서 이 함수를 내보내야 합니다.
EXT_CLASS 상수는 EngExtCpp 확장 라이브러리를 나타내는 C++ 클래스의 이름을 지정합니다.
EXT_CLASS
#ifndef EXT_CLASS
#define EXT_CLASS Extension
#endif
EXT_CLASS 기본값은 Extension입니다. 헤더 파일 Engextcpp.hpp를 포함하기 전에 EXT_CLASS 정의하여 이 값을 변경할 수 있습니다.
라이브러리의 각 확장 명령은 매크로 EXT_COMMAND_METHOD 사용하여 클래스 EXT_CLASS 멤버로 선언됩니다. 예를 들어 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 클래스의 단일 instance 만듭니다.
EXT_DECLARE_GLOBALS 매크로는 EngExtCpp 확장 프레임워크에서 사용할 일부 전역 변수를 설정합니다. 여기에는 EngExtCpp 확장 라이브러리를 나타내는 EXT_CLASS 클래스의 단일 instance 만드는 것이 포함됩니다.
EngExtCpp 확장 라이브러리로 컴파일할 원본 파일 중 하나에는 다음 명령이 포함되어야 합니다.
EXT_DECLARE_GLOBALS()
요구 사항
요구 사항 | 값 |
---|---|
대상 플랫폼 | 데스크톱 |
머리글 | engextcpp.hpp(Engextcpp.hpp 포함) |