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.
Önemli
Visual Studio 2015'te, ifade değerlendiricileri uygulama yöntemi kullanım dışıdır. CLR ifade değerlendiricilerini uygulama hakkında bilgi için bkz . CLR İfade Değerlendiricileri ve Yönetilen İfade Değerlendirici Örneği.
Bu arabirim, ifade değerlendiricisini temsil eder.
Sözdizimi
IDebugExpressionEvaluator : IUnknown
Uygulayıcılar için Notlar
İfade değerlendiricisinin bu arabirimi uygulaması gerekir.
Arayanlar İçin Notlar
Bu arabirimi elde etmek için, değerlendiricinin sınıf kimliğini (CLSID) kullanarak yöntemi aracılığıyla CoCreateInstance ifade değerlendiricisinin örneğini oluşturun. Bkz. Örnek.
Vtable Sırasına Göre Yöntemler
Aşağıdaki tabloda yönteminin yöntemleri gösterilmektedir IDebugExpressionEvaluator.
| Metot | Açıklama |
|---|---|
| Parse | İfade dizesini ayrıştırılmış ifadeye dönüştürür. |
| GetMethodProperty | Bir yöntemin yerel değişkenlerini, bağımsız değişkenlerini ve diğer özelliklerini alır. |
| GetMethodLocationProperty | Yöntem konumunu ve uzaklığını bellek adresine dönüştürür. |
| SetLocale | Yazdırılabilir sonuçlar oluşturmak için hangi dilin kullanılacağını belirler. |
| SetRegistryRoot | Kayıt defteri kökünü ayarlar. Yan yana hata ayıklama için kullanılır. |
Açıklamalar
Tipik bir durumda, hata ayıklama altyapısı (DE), ParseText çağrısının bir sonucu olarak ifade değerlendiricisini (EE) oluşturur. DE, kullanmak istediği EE'nin dilini ve satıcısını bildiği için DE, EE'nin CLSID'sini kayıt defterinden alır ( Hata Ayıklama işlevi için SDK Yardımcıları, GetEEMetricbu alma işlemine yardımcı olur).
EE örneği yüklendikten sonra DE, ifadeyi ayrıştırmak ve bir IDebugParsedExpression nesnesinde depolamak için Ayrıştır'ı çağırır. Daha sonra EvaluateSync çağrısı ifadeyi değerlendirir.
Gereksinimler
Üst bilgi: ee.h
Ad Alanı: Microsoft.VisualStudio.Debugger.Interop
Derleme: Microsoft.VisualStudio.Debugger.Interop.dll
Örnek
Bu örnekte, bir sembol sağlayıcısı ve kaynak kodunda bir adres verilip ifade değerlendiricisinin nasıl örneklendirileceğini gösterir. Bu örnekte, GetEEMetricdbgmetric.lib Hata Ayıklama kitaplığı için SDK Yardımcıları'ndan bir işlevi kullanılır.
IDebugExpressionEvaluator GetExpressionEvaluator(IDebugSymbolProvider pSymbolProvider,
IDebugAddress *pSourceAddress)
{
// This is typically defined globally but is specified here just
// for this example.
static const WCHAR strRegistrationRoot[] = L"Software\\Microsoft\\VisualStudio\\8.0Exp";
IDebugExpressionEvaluator *pEE = NULL;
if (pSymbolProvider != NULL && pSourceAddress != NULL) {
HRESULT hr = S_OK;
GUID languageGuid = { 0 };
GUID vendorGuid = { 0 };
hr = pSymbolProvider->GetLanguage(pSourceAddress,
&languageGuid,
&vendorGuid);
if (SUCCEEDED(hr)) {
CLSID clsidEE = { 0 };
CComPtr<IDebugExpressionEvaluator> spExpressionEvaluator;
// Get the expression evaluator's CLSID from the registry.
::GetEEMetric(languageGuid,
vendorGuid,
metricCLSID,
&clsidEE,
strRegistrationRoot);
if (!IsEqualGUID(clsidEE,GUID_NULL)) {
// Instantiate the expression evaluator.
spExpressionEvaluator.CoCreateInstance(clsidEE);
}
if (spExpressionEvaluator != NULL) {
pEE = spExpressionEvaluator.Detach();
}
}
}
return pEE;
}