I have spend some hours around this but I'm not getting nowhere. The 
following C function has this signature

void *GMT_Create_Data (void *API, unsigned int family, unsigned int geometry
,
                        unsigned int mode, uint64_t par[], double *wesn,
                        double *inc, unsigned int registration, int pad, 
void *data)


A Clang.jl conversion produced

@c Ptr{None} GMT_Create_Data (Ptr{None}, Uint32, Uint32, Uint32, Ptr{
Culonglong}, Ptr{Cdouble},
        Ptr{Cdouble}, Uint32, Cint, Ptr{None}) gmt_w64

than I manually try to replicate it so that I can use default values, and I 
wrote it as

function create_data(API::Ptr{None}, family=5, geometry=1, mode=0, par::Ptr{
Culonglong}=C_NULL,
        wesn::Ptr{Cdouble}=C_NULL, inc::Ptr{Cdouble}=C_NULL, reg=0, pad=2,data
::Ptr{None}=C_NULL)

    ptr = ccall((:GMT_Create_Data,lib), Ptr{None}, (Ptr{None}, Uint32, 
Uint32, Uint32, Ptr{Uint64},
        Ptr{Cdouble}, Ptr{Cdouble}, Uint32, Cint, Ptr{None}),
        API, uint32(family),uint32(geometry),uint32(mode),par,wesn,inc,
uint32(reg),int32(pad), data)
end

However, no matter what I try the manual version always error

julia> V = create_data (API, 5, 1, 0, dim, C_NULL, C_NULL, 0, 0, C_NULL)
ERROR: no method create_data(Ptr{None}, Int64, Int64, Int64, Array{Uint64,1
}, Ptr{None}, Ptr{None}, Int64, Int64, Ptr{None})

or

julia> create_data(API)
ERROR: no method create_data(Ptr{None}, Int64, Int64, Int64, Ptr{None}, Ptr{
None}, Ptr{None}, Int64, Int64, Ptr{None})
 in create_data at C:\progs_cygw\GMTdev\julia\GMT\src\GMTfuns.jl:22

but the automatic one runs fine


julia> V = GMT_Create_Data (API, 5, 1, 0, dim, C_NULL, C_NULL, 0, 0, C_NULL)
Ptr{Void} @0x0000000000216210


What am I doing wrong?

Thanks

Reply via email to