符合規範的陣列
一致性數位的大小可能會隨著用戶端每次將它傳遞給伺服器上的遠端程式而有所不同或一致。 應用程式 MIDL 檔案中的介面定義可讓用戶端在每次叫用遠端程式時指定數位的大小。 在陣列定義中使用空的方括弧 ([ ]) 或方括弧 ([*]) 中的星號,以表示一致陣列。
下列範例包含 MIDL 檔案中介面中遠端程式的定義。 用戶端會指定數位的大小,該數位會由參數 arraySize傳遞給伺服器。
[
/*Attributes are defined here. */
]
interface MyInterface
{
MyRemoteProc(
long lArraySize,
[size_is(lArraySize)] char achArray[*]
);
/* Other interface procedures are defined here. */
}
介面定義會使用 MIDL 屬性 [size_is] 來指定客戶端傳遞給伺服器的數位大小。 如果您想要指出陣列索引編號的最大值,請改用 [max_is] 屬性。 如需這些 MIDL 屬性的詳細資訊,請參閱 陣列屬性。
下列代碼段說明用戶端如何叫用上述 MIDL 檔案中定義的遠端程式。
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);
此片段會呼叫遠端程式 MyRemoteProc 兩次。 在第一次叫用時,它會傳遞 20 個元素的陣列。 在第二次呼叫時,用戶端會傳遞 200 個元素的陣列。