Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Storleken på en överensstämmande matris kan variera eller överensstämma varje gång klienten skickar den till en fjärrprocedur på servern. Gränssnittsdefinitionen i programmets MIDL-fil gör att klienten kan ange storleken på matrisen varje gång den anropar fjärrproceduren. Använd tomma hakparenteser ([ ]) eller en asterisk i hakparenteserna ([*]) i matrisdefinitionen för att ange en överensstämmande matris.
Följande exempel innehåller definitionen av en fjärrprocedur i ett gränssnitt i en MIDL-fil. Klienten anger storleken på matrisen som den skickar till servern med parametern arraySize.
[
/*Attributes are defined here. */
]
interface MyInterface
{
MyRemoteProc(
long lArraySize,
[size_is(lArraySize)] char achArray[*]
);
/* Other interface procedures are defined here. */
}
Gränssnittsdefinitionen använder MIDL-attributet [size_is] för att ange storleken på matrisen som klienten skickar till servern. Om du hellre vill ange det maximala värdet för matrisens indexnummer använder du attributet [max_is] i stället. Mer information om dessa MIDL-attribut finns i arrayattribut.
Följande kodfragment illustrerar hur en klient kan anropa fjärrproceduren som definierades i föregående MIDL-fil.
long lArrayLength = 20;
char achCharArray[20], achAnotherCharArray[200];
// Code to store 20 chars in achCharArray goes here.
MyRemoteProc(
lArrayLength ,
achCharArray);
lArrayLength = 200;
// Code to store 200 chars in achAnotherCharArray goes here.
MyRemoteProc(
lArrayLength ,
achAnotherCharArray);
Det här fragmentet anropar fjärrproceduren MyRemoteProc två gånger. Den första anropet skickar en matris med 20 element. Vid det andra anropet skickar klienten en matris med 200 element.