Smoke è un generatore di binding a runtime, un po 'come un introspezione di gobject, se lo sai.
Ciò significa che genera informazioni sul codice che si sta vincolando e lo rende disponibile come libreria. Per utilizzare la libreria generata, è necessario scrivere codice contro l'API Smoke (che è un'API C++) per ottenere informazioni sul codice per il quale sono stati generati i binding e utilizzare l'API Smoke per chiamare le funzioni nel codice che si è avvolgimento.
L'esempio nella pagina http://techbase.kde.org/Development/Languages/Smoke mostra come si utilizza l'API per chiamare nel codice si sono vincolanti (la creazione di Qt Widget ciao esempio del mondo qui)
fumo API è introdotto qui http://techbase.kde.org/Development/Languages/Smoke/API_Documentation per alcune parti difficili, ma la la principale fonte di informazioni che ho trovato è l'intestazione smoke.h.
Ho sviluppato un legame C (https://github.com/pankajp/pysmoke/blob/master/include/smokec.h) su Fumo nel mio tentativo di scrivere un binding Qt-python basato sul fumo, che funziona già per alcuni programmi semplici. Potresti trovarlo come punto di partenza se vuoi utilizzare Smoke from C.
Se, invece, sei solo interessato a esporre una piccola libreria C++ semplice a C, senza preoccuparti di creare sottoclassi in C (in alcun modo) e sovrascrivendo il metodo virtuale o protetto, cioè si desidera semplicemente utilizzare il codice esistente senza estenderlo in alcun modo, quindi potrebbe essere meglio scrivere i binding manualmente (come ho fatto per l'API Smoke C++, anche se ho fornito anche un modo per implementare metodi virtuali in C passando un puntatore a una funzione)
rtfm? o non c'è un manuale? leggi il suo codice sorgente allora? – Abyx