Krolik napisał(a)
nie można eksportować klas, a jedynie zwykłe funkcje, trzeba uważać na wiele aspektów technicznych jak konwencje wywołania [...]
A interface'y??? Wprawdzie nie można po nich dziedziczyć no ale...
trzeba uważać na wiele aspektów technicznych jak konwencje wywołania,
Z dobrą dokumentacją nie stanowi to problemu ;)
trzeba mieć osobny zestaw wtyczek na każdy system op.,
Hmm przy dobrze zaprojektowanym systemie wtyczek to też nie jest problem - tu problemem jest przenośność kodu/bibliotek jako taka.
nie można w prosty sposób wyciągać listy eksportowanych funkcji (brak reflection / RTTI)
Wystaczy jedna funkcja - class factory
są problemy z kompatybilnością bibliotek - ktoś skompiluje wtyczkę innym kompilatorem z inną wersją STLa
To stanowi problem wtedy gdy interface wtyczki odwołuje się (w parametrach) do STL'a, VCL'a itd. Na ogół stosuje się (przy definicji interface'u) tylko proste typy i/lub obiekty/interface'y zdefiniowane przez sam system wtyczek.
adf88 napisał(a)
Właściwie nie trzeba udostępniać, wtyczka może założyć hook na nie.
Ale czy wtedy będzie to wtyczka? :) Wtyczka różni się tym od rozszerzenia, że ma ściśle określone pole działania. Tu nie ma takiej "dowolności" jak w przypadku rozszerzenia.