2010-10-19 20 views
8

Paylaşılan kitaplıkları kullanarak eklentilerin dinamik yüklemesi için platformlar arası uygulamalarda seçeneklerimin ne olduğunu merak ediyordum.Çapraz Platform C++ Dinamik Kitaplık Eklentisi Yükleyicisi

Ve ben diğer seçenekleri olsaydı merak ediyorum: Şimdiye kadar bulduğum tek biridir? Esasen, eklentileri paylaşılan nesne dosyalarına koyabilmek ve bunları çalışma zamanında yükleyebilmek istiyorum ve bunu çapraz platform C++ yolunda yapmak istedim.

Edit: Bu Dr Dobbs Post'u 2007; şüphesiz birileri o zamandan beri bir şey daha ortaya çıktı.

+0

Olası yinelenen: https://pocoproject.org/docs/package-Foundation.SharedLibrary.html

C paylaşılan kütüphanede bir işlevi çağırmak için üç satır alır SharedLibrary sınıfını kullanma // stackoverflow .com/questions/43322/whats-safe-for-ac-plug-in-system – dgnorton

cevap

7

Henüz Boost'a kabul edilmemiş olsa da Boost Extension,'a bakabilirsiniz.

Boost.Extension kütüphane paylaşılan kütüphaneleri kullanılarak yazılımına eklentileri ve benzeri uzantıları gelişimini kolaylaştırmak için geliştirilen olmuştur. Sınıflar, işlevler ve veriler, paylaşılan kütüphaneleri tarafından sağlanan ve uygulama tarafından yüklenebilir.

+0

Güzel. Boost Kütüphanelerini çok seviyorum, bunun ne kadar uygun olduğunu göstermenin ne kadar uygun olduğunu göreceğim. –

+2

Bunu yapma. Orijinal yazar kendi çalışmasını reddetmiştir. http://blog.redshoelace.com/2014/01/c0x.html#links – johnwbyrd

3

Qt güzel plugin system sahiptir. Bu sayfanın second part numaralı sayfasına bir göz atmalısınız.

+0

Qt ne yaptıklarını bilirdi, onları düşünmeliydim, şimdi okuyordum. Teşekkürler. –

0

basit ve hafif deneyin şey isterseniz: http

Poco::SharedLibrary lib("libfoo.so"); 
int (* foo)(int) = reinterpret_cast<int (*)(int)>(lib.getSymbol("foo"));  
printf("answer %d\n", foo(5)); 
İlgili konular