Bagikan melalui


Array yang Sesuai

Ukuran array yang sesuai dapat bervariasi atau sesuai setiap kali klien meneruskannya ke prosedur jarak jauh di server. Definisi antarmuka dalam file MIDL aplikasi memungkinkan klien untuk menentukan ukuran array setiap kali memanggil prosedur jarak jauh. Gunakan kurung siku kosong ([ ]) atau tanda bintang dalam tanda kurung siku ([*]) dalam definisi array untuk menunjukkan array yang sesuai.

Sampel berikut berisi definisi prosedur jarak jauh dalam antarmuka dalam file MIDL. Klien menentukan ukuran array yang diteruskannya ke server oleh parameter arraySize.

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

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

Definisi antarmuka menggunakan atribut MIDL [size_is] untuk menentukan ukuran array yang diteruskan klien ke server. Jika Anda lebih suka menunjukkan nilai maksimum angka indeks array, gunakan atribut [max_is]. Untuk informasi selengkapnya tentang atribut MIDL ini, lihat Atribut Array.

Fragmen kode berikut menggambarkan bagaimana klien mungkin memanggil prosedur jarak jauh yang ditentukan dalam file MIDL sebelumnya.

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

Fragmen ini memanggil prosedur jarak jauh MyRemoteProc dua kali. Pada pemanggilan pertama, ia melewati array 20 elemen. Pada panggilan kedua, klien melewati array 200 elemen.