C++ ile .NET arasında iletişim
Named Callbacks, C++ eklentilerinin Rhino’nun .NET tarafındaki işlevlere adlandırılmış çağrılarla ulaşmasını sağlar. .NET bir işleyiciyi adla kaydeder; C++ aynı adı çağırır ve girdiler ile sonuçlar bir parametre sözlüğünde taşınır.
İki temel parça
CRhinoParameterDictionary, sınırlar arasında taşınan değerleri adlarıyla saklar. Her tür için Set ve Get yöntemleri bulunur. RhinoExecuteNamedCallback, adı ve sözlüğü alarak çağrıyı yapar. Tanımlar rhinoSdkInterop.h içindedir ve rhinoSdk.h üzerinden gelir.
Girdiler ve çıktılar
Genel sıra; sözlük oluşturmak, girdileri yazmak, çağrıyı yapmak ve sonuçları aynı sözlükten okumaktır. GetDotNetRuntime örneği, çalışan .NET ortamının bilgisini alır. Başka çağrılar hem girdi hem çıktı kullanabilir.
Get yöntemleri bir değer bulunamadığında çıktı değişkenini değiştirmeyebilir. Bu yüzden çıktılara başlangıç değeri atanmalı ve Get sonucuna bakılmalıdır. Yazılmayan bir anahtarın varsayılan durum olarak değerlendirilmesi gerekebilir.
Adlandırma kuralları
Callback adları Rhino işlemi içinde ortaktır; eklentiye özel ad alanı kendiliğinden oluşmaz. Çakışmayı önlemek için ayırt edici bir önek kullanılmalıdır.
Callback adları büyük/küçük harfe duyarsız eşleştirilir; parametre anahtarları ise duyarlıdır. dontShowAgain ile dontshowagain aynı anahtar değildir.
Başarısız çağrıyı yorumlama
false sonucu; işleyicinin bulunmaması, işleyicinin başarısızlık bildirmesi veya yönetilen bir istisna oluşması anlamına gelebilir. Bu durumlar yalnız dönüş değerinden ayırt edilemez. Önce adın yazımı ve beklenen parametreler kontrol edilmelidir.
NotLicensedException özel bir istisnadır ve sınırın dışına yayılmasına izin verilir. Çağrı çalışmadığında sözlük değişmeden dönebildiği için başlangıç değerleri güvenilir hata yönetiminin önemli parçasıdır.
Kaynaklar
Bu sayfadaki teknik ve hukuki bilgiler aşağıdaki resmî kaynaklara dayanır.