Здравствуйте, GhostCoders, Вы писали:
GC>ну и С++ врапперы:
GC>GC>class Printer
GC>{
GC>private:
GC> void * printer_handle;
GC>public:
GC> Printer()
GC> {
GC> printer_handle = printer_create();
GC> }
GC> ~Printer()
GC> {
GC> printer_destroy(printer_handler);
GC> }
GC> void Show()
GC> {
GC> printer_show(printer_handle);
GC> }
GC>};
GC>
Дело нужное. Не забудь только оператор присваивания запретить.
И самое главное — любое летящее из внутреннего С++-а исключение должно обязательно ловиться С-шной обёрткой и снова бросаться в неизменном виде в С++-ной. И, кстати, что ты будешь делать в случае, если над С++-ом есть только С (без С++ над С) и этот внутренний С++ выбросит, скажем,
boost::thread_interrupted. С-шный код как-то должен понять, что пора закругляться, но как?