Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die EvaluateExtendedExpression-Methode ähnelt der EvaluateExpression-Methode, mit der Ausnahme, dass sie zusätzliche nichtsprachliche Funktionen aktiviert, die ein bestimmter Debughost dem Ausdrucksauswerter hinzufügen möchte. Für Debuggingtools für Windows ermöglicht dies beispielsweise anonyme Typen, LINQ-Abfragen, Modulqualifizierer, Formatbezeichner und andere Nicht-C/C++-Funktionen.For Debugging Tools for Windows, for example, this enables anonym types, LINQ queries, module qualifizierer, format specifiers, and other non-C/C++functionality.
Es ist wichtig zu beachten, dass es keine Garantie dafür gibt, dass ein Ausdruck, der mit einem Host über EvaluateExtendedExpression ausgewertet wird, korrekt für einen anderen Host ausgewertet wird, der dieselbe Sprache debugt. Erweiterungen im Ausdrucksauswertung sind die Purview eines bestimmten Hosts. Es wird dringend empfohlen, dass Clients die EvaluateExpression-Methode anstelle der EvaluateExtendedExpression-Methode aus diesem genauen Grund verwenden. Die Verwendung dieser Methode reduziert die Portabilität des Aufrufers.
Syntax
HRESULT EvaluateExtendedExpression(
IDebugHostContext *context,
PCWSTR expression,
IModelObject *bindingContext,
_COM_Errorptr_ IModelObject **result,
IKeyStore **metadata
);
Parameter
context
Der Hostkontext, in dem die Ausdrucksauswertung auftritt. Wenn es z. B. Speicherlesevorgänge des Ziels aufgrund von Zeigerentleitungen gibt, wird der Adressraum, in dem diese Speicherlesevorgänge vorgenommen werden, durch dieses Argument angegeben.
expression
Der auszuwertende Ausdruck. Dies kann private Hosterweiterungen für die Sprachsyntax verwenden.
bindingContext
Der Bindungskontext, in dem Symbolnamen (Variable) nachschlagen werden. Bei C++ entspricht dies semantisch dem Zeigerwert.
result
Der resultierende Wert der Ausdrucksauswertung wird hier zurückgegeben.
metadata
Alle metadaten, die dem Ausdruck oder ergebnis zugeordnet sind, werden hier zurückgegeben.
Rückgabewert
Diese Methode gibt HRESULT zurück, das Erfolg oder Fehler angibt.
Bemerkungen
Codebeispiel
ComPtr<IDebugHost> spHost; /* get the host */
ComPtr<IDebugHostEvaluator2> spEval;
if (SUCCEEDED(spHost.As(&spEval)))
{
ComPtr<IModelObject> spNotepadProcesses;
// We can use any syntax that's private to the host (not only
// language syntax). This is not necessarily portable from host to host
if (SUCCEEDED(spEval->EvaluateExtendedExpression(
USE_CURRENT_HOST_CONTEXT,
L"@$cursession->Processes.Where(p => p.Name == \"notepad.exe\")",
nullptr,
&spNotepadProcesses,
nullptr)))
{
// spNotepadProcesses will contain a collection of every process
// named (exactly) "notepad.exe". Such can be iterated with IIterableConcept.
}
}
Anforderungen
| Anforderung | Wert |
|---|---|
| Header- | dbgmodel.h |