you really don't have to change the core (except maybe move it out of the main() function) and you wouldn't have to change the GUI much either (where it to be designed already). You just have to insert a layer between them that handle communication in a way that is independent from both (i.e use signals/slots and/or events to pass data from GUi to communication layer (CoreThread in my example) and use C core entry points, from communication layer, to pass that data (and retrieve results) to the C core).
The underlying architecture of the core is not an issue as long as it offers entry points to the data it manipulates (in and out). The rest is just a matter of bridging UI and core as explained above.
Bookmarks