Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bir ifade dizesini, sembol sağlayıcısı ve değerlendirme çerçevesinin adresi verildiğinde ayrıştırılmış bir ifadeye dönüştürür.
Sözdizimi
HRESULT Parse2 (
string upstrExpression,
enum_PARSEFLAGS dwFlags,
uint nRadix,
IDebugSymbolProvider pSymbolProvider,
IDebugAddress pAddress,
out string pbstrError,
out uint pichError,
out IDebugParsedExpression ppParsedExpression
);
Parametreler
upstrExpression
[in] Ayrıştırılacak ifade dizesi.
dwFlags
[in] İfadenin nasıl ayrıştırılacağına karar veren PARSEFLAGS sabitleri koleksiyonu.
nRadix
[in] Sayısal bilgileri yorumlamak için kullanılacak sayı tabanı.
pSymbolProvider
[in] Sembol sağlayıcısının arabirimi.
pAddress
[in] Değerlendirme çerçevesinin adresi.
pbstrError
[out] Hatayı okunabilir metin olarak döndürür.
pichError
[out] İfade dizesindeki hatanın başlangıcının karakter konumunu döndürür.
ppParsedExpression
[out] IDebugParsedExpression nesnesinde ayrıştırılmış ifadeyi döndürür.
İade Değeri
Başarılı olursa döndürür S_OK; aksi takdirde bir hata kodu döndürür.
Açıklamalar
Bu yöntem, gerçek bir değer değil ayrıştırılmış bir ifade oluşturur. Ayrıştırılmış ifade değerlendirilmeye, yani bir değere dönüştürülmeye hazırdır.
Örnek
Aşağıdaki örnek, IDebugExpressionEvaluator3 arabirimini kullanıma sunan bir CEE nesnesi için bu yöntemin nasıl uygulandığını gösterir.
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);
}