Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Quando si usano [outpuntatori di riferimento solo ]in Microsoft RPC, gli stub del server generati allocano solo il primo livello di puntatori accessibili dal puntatore di riferimento. I puntatori a livelli più profondi non vengono allocati dagli stub, ma devono essere allocati dal livello dell'applicazione server. Si supponga, ad esempio, che un'interfaccia specifichi una matrice [out]-only dei puntatori di riferimento:
/* IDL file (fragment) */
typedef [ref] short * PREF;
Proc1([out] PREF array[10]);
In questo esempio lo stub del server alloca memoria per 10 puntatori e imposta il valore di ogni puntatore su Null. L'applicazione server deve allocare la memoria per 10 brevi numeri interi a cui fanno riferimento i puntatori e quindi impostare i 10 puntatori in modo che puntino ai numeri interi.
Quando [outstruttura di dati solo ]-only include puntatori di riferimento annidati, gli stub del server allocano solo il primo puntatore accessibile dal puntatore di riferimento. Per esempio:
/* IDL file (fragment) */
typedef struct
{
[ref] small * psValue;
} STRUCT1_TYPE;
typedef struct
{
[ref] STRUCT1_TYPE * ps1;
} STRUCT_TOP_TYPE;
Proc2([out, ref] STRUCT_TOP_TYPE * psTop);
Nell'esempio precedente, gli stub del server allocano il puntatore psTop e la struttura STRUCT_TOP_TYPE. Il puntatore di riferimento ps1 in STRUCT_TOP_TYPE è impostato su Null. Lo stub del server non alloca ogni livello della struttura di dati, né alloca il STRUCT1_TYPE o il puntatore incorporato, psValue.