參考指標
參考指標是最簡單的指標,而且用戶端存根需要最少的處理量。 當用戶端程式將參考指標傳遞至遠端程式時,參考指標一律包含有效記憶體區塊的位址。 當遠端程式完成時,它仍會指向相同的記憶體區塊。 這些指標主要用於實作參考語意,並允許 C 中的 [out] 參數。
在下列範例中,指標的值不會在呼叫期間變更,不過指標所指示地址的數據內容可能會變更。
參考指標具有下列特性:
- 它一律指向有效的記憶體,而且永遠不會有 NULL 的值。
- 在呼叫期間永遠不會變更,而且一律會指向呼叫前後的相同記憶體。
- 從遠端程式傳回的數據會寫入現有的記憶體。
- 參考指標所指向的記憶體無法由函式中任何其他指標或任何其他名稱存取。
使用 [ref] 屬性在介面定義中指定參考指標,如下列範例所示。
/* IDL file */
[
uuid(ba209999-0c6c-11d2-97cf-00c04f8eea45),
version(1.0)
]
interface RefPtrInterface
{
void RemoteFn([in, out, ref] char *pChar);
}
這個範例會將 pChar 參數定義為單一字元的指標,而不是字元陣列。 它是 [out] 參數,以及指向伺服器例程 RemoteFn 將填入數據的記憶體參考指標。