Evet, bir çok dil C kütüphanelerini çağırabiliyor. C'nin kullandığı bir çağırma yöntemi (calling convention) var. Parametreler program yığıtında şöyle geçirilirler, dönüş değeri şu yamaca konur, vs. Bunların tam ne olduklarını uyduruyorum ama sonuçta o kurallara uyan her kod her C kütüphanesini çağırabilir.
C++ kütüphaneleri yine C arayüzü ile çağrılabilir. C++ tarafı ince bir C arayüzü sunar. Bu işlevler 'extern "C"' olarak bildirilmişlerdir. D (veya başka dil) tarafı da o arayüzü 'extern(C)' olarak bildirir ve yine C gibi çağırır.
Tabii C++ nesneleri D tarafında oluşturulamayacaklarından C++ kütüphanesi o iş için de işlev sunar: 'Hayvan* KediKur(/* ... */)' gibi.
Ancak, D'nin C++ ilişkisi gittikçe artıyor:
https://dlang.org/spec/cpp_interface.html
İkinci soruyu ben anlamadım.
Ali
--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]