Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Mengonversi string ekspresi ke ekspresi yang diurai mengingat penyedia simbol dan alamat bingkai evaluasi.
Sintaks
HRESULT Parse2 (
string upstrExpression,
enum_PARSEFLAGS dwFlags,
uint nRadix,
IDebugSymbolProvider pSymbolProvider,
IDebugAddress pAddress,
out string pbstrError,
out uint pichError,
out IDebugParsedExpression ppParsedExpression
);
Parameter
upstrExpression
[di] String ekspresi yang akan diurai.
dwFlags
[di] Kumpulan konstanta PARSEFLAGS yang menentukan bagaimana ekspresi akan diurai.
nRadix
[di] Radix yang akan digunakan untuk menafsirkan informasi numerik apa pun.
pSymbolProvider
[di] Antarmuka penyedia simbol.
pAddress
[di] Alamat bingkai evaluasi.
pbstrError
[out] Mengembalikan kesalahan sebagai teks yang dapat dibaca manusia.
pichError
[out] Mengembalikan posisi karakter dari awal kesalahan dalam string ekspresi.
ppParsedExpression
[out] Mengembalikan ekspresi yang diurai dalam objek IDebugParsedExpression .
Tampilkan Nilai
Jika berhasil, mengembalikan S_OK; jika tidak, mengembalikan kode galat.
Keterangan
Metode ini menghasilkan ekspresi yang diurai, bukan nilai aktual. Ekspresi yang diurai siap dievaluasi, yaitu, dikonversi menjadi nilai.
Contoh
Contoh berikut menunjukkan cara menerapkan metode ini untuk objek CEE yang mengekspos antarmuka 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);
}