Aufrufen von in Assemblys

Beim Aufrufen der Einstiegspunkte einer Assembly wird empfohlen, denselben Aktivierungskontext zu verwenden, der bei der Suche nach der Assembly aktiv war. Stellen Sie mindestens sicher, dass die Komponente, die die Assembly lädt, nicht versehentlich den aktivierungskontext erhält, den Ihre Anwendung verwendet. Das Verlust des Aktivierungskontexts über DLL-Grenzen hinweg kann zu unerwarteten Abhängigkeiten führen. Dies ist kein Problem, wenn Ihre Anwendung ISOLATION AWARE ENABLED kompiliert, da in diesem _ Fall standardmäßig kein _ Aktivierungskontext aktiv ist. Wenn Sie nicht mit definierter ISOLATION AWARE ENABLED kompilieren, _ sollten Sie den _ NULL-Aktivierungskontext oder denselben Aktivierungskontext aktivieren, der zum Laden der Assembly verwendet wurde.

Im folgenden Beispiel wird sichergestellt, dass die gehostete DLL in einem Kontext ausgeführt wird, den sie erkennt:

ULONG_PTR ulpCookie;
ActivateActCtx(hTheActCtxForMyDll, &ulpCookie);
__try 
{
        MyDllIsolatedFunction();
    myDllIsolatedComInterface->Funct();
}
__finally 
{
    DeactivateActCtx(0, ulpCookie);
}