I already fall in those two forms of troubles (double definition and double 
inclusion of the file where the type is defined) so I'm aware of it. As 
much as I can tell with grepping, that is not occurring now. 
Maybe a third (unknown to me) form of this type of issue?

quarta-feira, 14 de Janeiro de 2015 às 14:41:56 UTC, Keno Fischer escreveu:
>
> Are you maybe accidentally defining cdCanvas twice or in two different 
> modules?
>
> On Wed, Jan 14, 2015 at 3:40 PM, J Luis <[email protected] <javascript:>> 
> wrote:
>
>> 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 
>>>>
>>>>
>

Reply via email to