What I do is that I hardcode the define in scheme using simple define form for instance, the following:
#define SOMETHING some_value Becomes: (define SOMETHING some_value) I do that even for enums. But guile-squee has another point of view on this. On Sat, Jun 10, 2017 at 10:31 AM Catonano <caton...@gmail.com> wrote: > The Freexl documentation states that I should call freexl_get_info like > this > > freexl_get_info(&handler, FREEXL_BIFF_SHEET_COUNT, &outcome); > > Now, FREEXL_BIFF_SHEET_COUNT is defined in the header file like this > > /** Information query for BIFF sheet count */ > #define FREEXL_BIFF_SHEET_COUNT 32010 > > But at the REPL, when I call my procedure like this > > scheme@(freexl common)> (freexl-open "resources/Lavoro_P.xls") > $1 = #<pointer 0x1227f50> > scheme@(freexl common)> (freexl-get-info $1 32010) > > I get > > ERROR: Throw to key `get-info-error' with args `(error-code -3)'. > > That is, an exception is being raised, as you can see in this excerpt of my > code > > (define freexl-get-info > (let* ((ptr (freexl-func "freexl_get_info")) > (proc (pointer->procedure int ptr (list '* unsigned-int '*)))) > (lambda (handle-ptr what) > (let* ((outcome-ptr (bytevector->pointer (make-bytevector (sizeof > unsigned-int)))) > (result (proc handle-ptr what outcome-ptr))) > (if (not (= result 0)) > (throw 'get-info-error 'error-code result) <-- THIS IS THE > EXCEPTION BEING RAISED > outcome-ptr) > )))) > > How do I deal with these #define'd things ? > > I tried with both unsigned-int and uint16 > > Thanks in advance >