Selamün Aleyküm;
Kodlarımızı bir dille yazıp birçok dilde kullanmak istediğimiz zamanlar oluyor. Bu durumlarda statik / dinamik kütüphaneler olarak kullanabiliyoruz. Lakin bu biraz meşakkatli olabiliyor. Ben de şöyle birşey düşündüm, mesela bir bağlayıcı olsa ve misal C++ kodlarını Python veyahut da başka bir dilde kullanılabilir hale getirse. Yani örneklemek gerekirse şöyle bir C++ kodumuz olsun:
class Test : public AbstractClass, private SubProp
{
private:
 // private üyeler
public:
 Test();
 Test(const std::string& str);
 void set_map(const std::map<std::string, std::string>& map)
 {
   // ...
 }
 std::map get_map() const
 {
   // ...
 }
};
Şimdi bu kodu Python'da şöyle kullanmak istiyoruz:
from Test import *;
def main():
   test_instance = Test()
   test_instance2 = Test('Hello!')
   test_instance.set_map({ 'name' : 'Ali', 'no' : '123' })
   result = test_instance.get_map()
Veyahut da Object Pascal'da şöyle kullanmak istiyoruz:
uses Test;
var
 testInstance  : Test;
 testInstance2 : Test;
 map           : TMap<string, string>;
begin
 testInstance := Test.Create;
 testInstance2 := Test.Create('Hi!');
 map := TMap<string, string>.Create;
 map.insert('name', 'Ali');
 map.insert('no', '123');
 testInstance.set_map(map);
 result := testInstance.get_map;
end.
Yalnız bunları kullanmak için C++ wrapper ve statik / dinamik bir kütüphane hazırlamadan kullanmak istiyoruz. Mesela "C++ tarafında şu şu sınıfı / nesneyi falan dilde kullanmak istiyorum" gibisinden bazı işaretlemeler mi koymalıyız? Mesela şöyle:
// C++
PASCAL_SINIFI class Test : public AbstractClass, private SubProp
{
 // ...
};
Bunun için bir bağlayıcı (linker) yazılabilir mi? Eğer evetse nasıl yazılabilir? Mantığı nasıl kurmalıyım?
Teşekkürler!
--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]
 Permalink
Permalink Reply
Reply