Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
O tamanho de uma matriz compatível pode variar ou estar em conformidade sempre que o cliente passar para um procedimento remoto no servidor. A definição de interface no arquivo MIDL do aplicativo permite que o cliente especifique o tamanho da matriz sempre que ele invocar o procedimento remoto. Use colchetes vazios ([ ]) ou um asterisco nos colchetes ([*]) na definição da matriz para indicar uma matriz conformante.
O exemplo a seguir contém a definição de um procedimento remoto em uma interface em um arquivo MIDL. O cliente especifica o tamanho da matriz que ele passa para o servidor pelo parâmetro arraySize.
[
/*Attributes are defined here. */
]
interface MyInterface
{
MyRemoteProc(
long lArraySize,
[size_is(lArraySize)] char achArray[*]
);
/* Other interface procedures are defined here. */
}
A definição de interface usa o atributo MIDL [size_is] para especificar o tamanho da matriz que o cliente passa para o servidor. Se preferir indicar o valor máximo dos números de índice da matriz, use o atributo [max_is]. Para obter mais informações sobre esses atributos MIDL, consulte Atributos de Matriz.
O fragmento de código a seguir ilustra como um cliente pode invocar o procedimento remoto definido no arquivo MIDL anterior.
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);
Esse fragmento chama o procedimento remoto MyRemoteProc duas vezes. Na primeira invocação, ele passa uma matriz de 20 elementos. Na segunda chamada, o cliente passa uma matriz de 200 elementos.