Dela via


Procedurserialisering

När du använder procedurer serialisering är en procedur märkt med attributet [koda] eller [avkoda] . I stället för att generera den vanliga fjärrstuben genererar kompilatorn en serialiseringsstub för rutinen.

Precis som en fjärrprocedur måste använda ett bindningshandtag för att göra ett fjärranrop, måste en serialiseringsprocedur använda ett serialiseringshandtag för att använda serialiseringstjänster. Om ett serialiseringshandtag inte har angetts används en implicit standardreferens för att dirigera anropet. Om serialiseringshandtaget å andra sidan anges, antingen som ett explicit handle_t argument för rutinen eller med hjälp av attributet [explicit_handle] måste du skicka ett giltigt handtag som argument för anropet. Mer information om hur du skapar ett giltigt serialiseringshandtag finns i serialiseringsreferenser, exempel på fast buffertkodningoch exempel på inkrementell kodning.

Not

Med Microsoft RPC kan fjärr- och serialiseringsprocedurer blandas i ett gränssnitt. Var dock försiktig när du gör det.

För fjärrprocedurer med implicita bindningshandtag genererar MIDL-kompilatorn en global referensvariabel av typen handle_t. Procedurer och typer med implicita serialiseringshandtag använder samma globala referensvariabel.

För implicita referenser måste det globala implicita handtaget anges till ett giltigt bindningshandtag före ett fjärranrop. Det implicita handtaget måste vara inställt på ett giltigt serialiseringshandtag innan ett serialiseringsanrop. Därför kan en procedur inte både fjärranslutas och serialiseras. Det måste vara det ena eller det andra.