IDebugExpressionEvaluator3::Parse2
기호 공급자 및 계산 프레임의 주소를 구문 분석 된 식에는 식 문자열을 변환 합니다.
HRESULT Parse2 (
LPCOLESTR upstrExpression,
PARSEFLAGS dwFlags,
UINT nRadix,
IDebugSymbolProvider* pSymbolProvider,
IDebugAddress* pAddress,
BSTR* pbstrError,
UINT* pichError,
IDebugParsedExpression** ppParsedExpression
);
HRESULT Parse2 (
string upstrExpression,
enum_PARSEFLAGS dwFlags,
uint nRadix,
IDebugSymbolProvider pSymbolProvider,
IDebugAddress pAddress,
out string pbstrError,
out uint pichError,
out IDebugParsedExpression ppParsedExpression
);
매개 변수
upstrExpression
[in] 구문 분석할 식 문자열입니다.dwFlags
[in] 컬렉션의 PARSEFLAGS 식 구문 분석할 방식을 결정 하는 상수입니다.nRadix
[in] 임의의 숫자 정보를 해석 하는 데 사용할 기 수입니다.pSymbolProvider
[in] 기호 공급자의 인터페이스를 제공 합니다.pAddress
[in] 주소 계산 프레임입니다.pbstrError
[out] 사람이 읽을 수 있는 텍스트 형식으로 오류를 반환합니다.pichError
[out] 시작 오류 문자 식 문자열을 반환합니다.ppParsedExpression
[out] 구문 분석 된 식의 반환은 IDebugParsedExpression 개체입니다.
반환 값
성공 하면 반환 S_OK. 그렇지 않으면 오류 코드를 반환 합니다.
설명
이 메서드는 구문 분석 된 식을 실제 값을 생성합니다. 구문 분석 된 식을 반환 계산 될 준비가 됩니다.
예제
다음 예제에서는이 메서드를 구현 하는 방법을 보여 줍니다 있는 CEE 를 노출 하는 개체는 IDebugExpressionEvaluator3 인터페이스.
HRESULT CEE::Parse2 ( LPCOLESTR in_szExprText,
PARSEFLAGS in_FLAGS,
UINT in_RADIX,
IDebugSymbolProvider *pSymbolProvider,
IDebugAddress *pAddress,
BSTR* out_pbstrError,
UINT* inout_pichError,
IDebugParsedExpression** out_ppParsedExpression )
{
// precondition
REQUIRE( NULL != in_szExprText );
//REQUIRE( NULL != out_pbstrError );
REQUIRE( NULL != inout_pichError );
REQUIRE( NULL != out_ppParsedExpression );
if (NULL == in_szExprText)
return E_INVALIDARG;
if (NULL == inout_pichError)
return E_POINTER;
if (NULL == out_ppParsedExpression)
return E_POINTER;
if (out_pbstrError)
*out_pbstrError = NULL;
*out_ppParsedExpression = NULL;
INVARIANT( this );
if (!this->ClassInvariant())
return E_UNEXPECTED;
// function body
EEDomain::fParseExpression DomainVal =
{
this, // CEE*
in_szExprText, // LPCOLESTR
in_FLAGS, // EVALFLAGS
in_RADIX, // RADIX
out_pbstrError , // BSTR*
inout_pichError, // UINT*
pSymbolProvider,
out_ppParsedExpression // Output
};
return (*m_LanguageSpecificUseCases.pfParseExpression)(DomainVal);
}