BTW, if that matters, 'ctgc' is a global variable.
quarta-feira, 14 de Janeiro de 2015 às 14:37:05 UTC, J Luis escreveu:
>
> Hi, thanks for looking into this.
>
> If I make them show, as
>
> @show ctgc.iup_canvas
> ctgc.iup_canvas = t
> @show t
> @show ctgc.iup_canvas
>
> it 'shows'
>
> ctgc.iup_canvas => Ptr{cdCanvas} @0x0000000000000000
> t => Ptr{cdCanvas} @0x0000000022c6d6c0
> ctgc.iup_canvas => Ptr{cdCanvas} @0x0000000022c6d6c0
>
> which shows that type has not changed after the attribution and that it
> has the correct return type of cdCreateCanvas().
> That is why I initialized the ctgc type with
>
> convert(Ptr{cdCanvas},0)
>
> (see first member in my first post)
>
>
> quarta-feira, 14 de Janeiro de 2015 às 13:39:21 UTC, Milan Bouchet-Valat
> escreveu:
>>
>> Le mercredi 14 janvier 2015 à 05:32 -0800, J Luis a écrit :
>> > Hi,
>> > I have had quite some head-aches with types (converted from C structs)
>> > but this one wins.
>> >
>> > I have this type (from IUP)
>> >
>> >
>> > type tCTC
>> > iup_canvas::Ptr{cdCanvas}
>> > w::Cint
>> > h::Cint
>> > ...
>> >
>> > which I initialize as
>> >
>> > ctgc = tCTC(
>> > convert(Ptr{cdCanvas},0),
>> > int32(0), int32(0),
>> > ...
>> >
>> > and now the mystery.
>> >
>> > t = cdCreateCanvas(cdContextIup(), IupGetHandle("cnvMain"))
>> > ctgc.iup_canvas = t
>> > cdActivate(t);
>> > cdActivate(ctgc.iup_canvas);
>> >
>> >
>> > the last line in the chunk above errors with
>> >
>> >
>> > ERROR: `cdActivate` has no method matching cdActivate(::Ptr{cdCanvas})
>> > in CDTestInit at C:\programs\Gits\IUP.jl\examples\cdtest_.jl:125
>> > in cdtest at C:\programs\Gits\IUP.jl\examples\cdtest_.jl:92
>> >
>> >
>> > So `t` and `ctgc.iup_canvas` are actually two different entities
>> > (although their pointers are ofc the same as I can see if I @show
>> > them)?
>> Well, you need to show us more details, e.g. tell us what
>> cdCreateCanvas() does, and what type it returns. The pointers might hold
>> the same address, but they still may be of different types. @show should
>> make this visible, but without the output we cannot check.
>>
>>
>> Regards
>>
>>