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. ]