Megosztás a következőn keresztül:


Megfelelő tömbök

A megfelelő tömb mérete változhat vagy megfelelhet minden alkalommal, amikor az ügyfél átadja azt egy távoli eljárásnak a kiszolgálón. Az alkalmazás MIDL-fájljában található felületdefiníció lehetővé teszi az ügyfél számára a tömb méretét minden alkalommal, amikor meghívja a távoli eljárást. Használjon üres szögletes zárójeleket ([ ]) vagy csillagot a tömbdefiníció szögletes zárójeleiben ([*]) egy megfelelő tömb jelzéséhez.

Az alábbi minta egy MIDL-fájl felületén található távoli eljárás definícióját tartalmazza. Az ügyfél a arraySizeparaméterrel adja meg a kiszolgálónak átadó tömb méretét.

[
    /*Attributes are defined here. */
]
interface MyInterface
{
    MyRemoteProc(
         long lArraySize,
         [size_is(lArraySize)] char achArray[*]
    );

    /* Other interface procedures are defined here. */
}

A felületdefiníció a MIDL attribútumot [size_is] használja annak a tömbnek a méretének megadásához, amelyet az ügyfél átad a kiszolgálónak. Ha inkább a tömb indexszámainak maximális értékét szeretné megadni, használja inkább a [max_is] attribútumot. További információ ezekről a MIDL-attribútumokról: Tömbattribútumok.

Az alábbi kódrészlet bemutatja, hogyan hívhatja meg egy ügyfél az előző MIDL-fájlban definiált távoli eljárást.

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);

Ez a töredék kétszer hívja meg a MyRemoteProc távoli eljárást. Az első meghívás során egy 20 elemből álló tömböt ad át. A második hívás során az ügyfél 200 elemből álló tömböt ad át.