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.