Dym to generator wiążący środowisko wykonawcze, przypominający introspekcję gobject, jeśli to wiesz.
Oznacza to, że generuje informacje o wiążącym się kodzie i udostępnia go jako bibliotekę. Aby korzystać z wygenerowanej biblioteki, musisz napisać kod przeciwko API Smoke (który jest API C++), aby uzyskać informacje o kodzie, dla którego wygenerowałeś powiązania, i użyć funkcji Smoke API do wywoływania funkcji w kodzie, którym jesteś zawijanie.
Przykład na stronie http://techbase.kde.org/Development/Languages/Smoke pokazuje, w jaki sposób korzystać z interfejsu API, aby zadzwonić do kodu jesteś wiązania (tworzenie QT widżety Witam Przykład świata tutaj)
Smoke API wprowadza tutaj http://techbase.kde.org/Development/Languages/Smoke/API_Documentation dla niektórych trudnych częściach, ale Głównym źródłem informacji, które znalazłem, jest nagłówek smoke.h.
Opracowałem wiązanie C (https://github.com/pankajp/pysmoke/blob/master/include/smokec.h) do Smoke podczas próby napisania wiązania pyt-python opartego na dymie, które działa już dla niektórych prostych programów. Możesz go znaleźć jako punkt wyjścia, jeśli chcesz używać Smoke z C.
Jeśli zamiast tego interesujesz się tylko wystawieniem małej, prostej biblioteki C++ na C, bez zawracania sobie głowy tworzeniem podklas w C (w jakikolwiek sposób) i nadpisywanie wirtualnej lub chronionej metody, to znaczy, że chcesz tylko użyć istniejącego kodu, nie rozszerzając go w żaden sposób, wtedy lepiej byłoby ręcznie napisać powiązania (tak jak zrobiłem to dla API Smoke C++, chociaż tam też zapewniłem sposób implementacji metod wirtualnych w C za pomocą wskaźnika funkcji)
rtfm? lub nie ma instrukcji? przeczytaj zatem jego kod źródłowy? – Abyx