Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
benzersiz işaretçilerinden farklı olarak, tam işaretçiler diğer adları destekler. Bu, aşağıdaki şekilde gösterildiği gibi birden çok işaretçinin aynı verilere başvurabileceği anlamına gelir:
aynı veri
Tam işaretçi aşağıdaki özelliklere sahiptir:
- Null değerine sahip olabilir.
- Çağrı sırasında null olandan null olmayana dönüşebilir. Değer null olmayan olarak değiştiğinde, istemci saplaması dönüşte ayrılan yeni belleği ayırır. İstemci programı sonlanmadan önce bu belleği boşaltmalıdır.
- Çağrı sırasında null olmayandan null olarak değişebilir. Değer null olarak değiştiğinde, uygulama belleği boşaltmaktan sorumludur.
- Değer, null olmayan bir değerden diğerine değişebilir.
- Tam işaretçinin işaret ettiği depolamaya işlemdeki başka bir işaretçi veya ad tarafından erişilebilir.
- İşaretçi null değerine sahip değilse dönüş verileri mevcut depolama alanına yazılır.
Aşağıdaki örnekte gösterildiği gibi tam işaretçi belirtmek için [ ptr ] özniteliğini kullanın:
/* IDL file */
[
uuid(ba209999-0c6c-11d2-97cf-00c04f8eea45),
version(1.0)
]
interface FullPtrInterface
{
void RemoteFn([in,ptr,string]) char *ptrName1,
[in,ptr,string] char *ptrName2);
}
Bu örnekte ptrName1 ve ptrName2 parametreleri bir dizenin tam işaretçileri olarak tanımlanır. her iki işaretçinin de tek bir dize içeren aynı bellek adresini işaret etmek mümkündür.
Diğer ad desteği sağlanırken [ptr] gereklidir. Ancak, RPC'de kullanılabilen tüm işaretçilerin en iyi şekilde işlenmesini gerektirdiğinden, çoğu uygulama için önerilmez.