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.
MIDL, veri dizilerini ve işaretçileri verilere geçirmek için zengin bir özellik kümesi sağlar. Dizilerin özelliklerini ve birden çok işaretçi düzeyini belirtmek için bu öznitelikleri kullanabilirsiniz.
| Öznitelik | Kullanım |
|---|---|
| size_is | Boyutlandırılmış işaretçiler, boyutlandırılan işaretçiler için boyutlandırılan işaretçiler ve tek veya çok boyutlu diziler için ayrılacak bellek miktarını belirtir. |
| max_is | Dizi dizini için en büyük değer. |
| length_is | İletilecek dizi öğelerinin sayısı. |
| first_is | İletilecek ilk dizi öğesinin dizini. |
| last_is | İletilecek son dizi öğesinin dizinini verir. |
| dize | Tek boyutlu karakter, wchar_t, bayt (veya eşdeğer) dizisinin veya böyle bir dizinin işaretçisinin dize olarak işleneceğini gösterir. |
| aralığı | Değerleri çalışma zamanında ayarlanan bağımsız değişkenler veya alanlar için izin verilen değerler aralığını belirtir. |
MIDL üç tür işaretçiyi destekler: başvuru işaretçileri, benzersiz işaretçiler ve tam işaretçiler. Bu işaretçiler,başvuruişaretçi öznitelikleri tarafından belirtilir benzersizve ptr.
İşaretçi özniteliği tür özniteliği olarak uygulanabilir; bir yapı üyesi, birleşim üyesi veya parametre için geçerli bir alan özniteliği olarak; veya işlev dönüş türüne uygulanan bir işlev özniteliği olarak. İşaretçi özniteliği pointer_default anahtar sözcüğüyle de görüntülenebilir.
Bir işaretçi parametresinin uzak bir işlev sırasında değerde değişmesine izin vermek için, birden çok işaretçi bildirimcisi sağlayarak başka bir dolaylılık düzeyi sağlamanız gerekir. Parametreye uygulanan açık işaretçi özniteliği, parametre için yalnızca en sağdaki işaretçi bildirimcisini etkiler. Parametre bildiriminde birden çok işaretçi bildirimcisi olduğunda, diğer bildirimciler varsayılan olarak pointer_default özniteliği tarafından belirtilen işaretçi özniteliğine atanır. Birden çok işaretçi bildirimciye farklı işaretçi öznitelikleri uygulamak için, açık işaretçi özniteliklerini belirten ara türler tanımlamanız gerekir.
Varsayılan Pointer-Attribute Değerleri
Parametre olan bir işaretçiyle ilişkilendirilmiş bir işaretçi özniteliği olmadığında, işaretçinin başvuru işaretçisi olduğu varsayılır.
Bir yapının veya birleşimin üyesi olan bir işaretçiyle ilişkilendirilmiş bir işaretçi özniteliği olmadığında, MIDL derleyicisi aşağıdaki öncelik kurallarını kullanarak işaretçi öznitelikleri atar (1 en yüksektir):
- İşaretçi türüne açıkça uygulanan öznitelikler
- İşaretçi parametresine veya üyesine açıkça uygulanan öznitelikler
- IDL dosyasında türü tanımlayan pointer_default özniteliği
- IDL dosyasında türü içeri aktaran pointer_default özniteliği
- ptr (osf modu); Benzersiz(Microsoft RPC varsayılan modu)
IDL dosyası varsayılan modda derlendiğinde, içeri aktarılan dosyalar, içeri aktarılan dosyalardan işaretçi özniteliklerini devralabilir. /osf anahtarını kullanarak derleme yaptığınızda bu özellik kullanılamaz. Daha fazla bilgi için bkz.içeri aktarma.
İşlev Dönüş Türleri
İşlev tarafından döndürülen işaretçi benzersiz bir işaretçisi veya tam işaretçi olmalıdır. BIR işlev sonucu açıkça veya varsayılan olarak bir başvuru işaretçisiyse MIDL derleyicisi bir hata bildirir. Döndürülen işaretçi her zaman yeni depolama alanını gösterir.
İşaretçi değeri döndüren işlevler, bir işaretçi özniteliğini işlev özniteliği olarak belirtebilir. İşaretçi özniteliği yoksa, işlev sonucu işaretçisi pointer_default özniteliği olarak sağlanan değeri kullanır.
Tür Tanımlarında İşaretçi Öznitelikleri
bir typedef deyiminin en üst düzeyinde bir işaretçi özniteliği belirttiğinizde, belirtilen öznitelik işaretçi bildirimcisine beklendiği gibi uygulanır. İşaretçi özniteliği belirtilmediğinde, typedef deyiminin en üst düzeyindeki işaretçi bildirimcileri kullanıldığında işaretçi öznitelik türünü devralır.
DCE IDL, aynı işaretçi özniteliğinin açıkça iki kez uygulanmasına izin vermez; örneğin, hem typedef bildiriminde hem de parametre öznitelik listesinde. MIDL derleyicisinin varsayılan (Microsoft uzantıları) modunu kullandığınızda, bu kısıtlama gevşetilir.
Uzaktan yordam çağrılarında MIDL dizilerini ve işaretçilerini kullanma hakkında bir tartışma için bkz. Diziler ve İşaretçiler.