Hi, If you have struct defined in .h file then it's ok or can dea easyily with struct written with .i file, in .h file, struct def { int a; char name[10]; }; can be referenced as >>strvar=new_def() //now strvar is your object for struct def and can access a and name as, get and set for individual member see, >>def_a_set(strvar,10) >>def_a_get(strvar) will return 10. or you can define struct as,
typedef struct { int sage; }coll; within .h file and access similarly. regard's Anish Chapagain www.mysticnepal.com On Aug 16, 11:38 am, [EMAIL PROTECTED] wrote: > Hello, > > I spent almost a week to be able to embed Python within my C++ game > engine. > I wrote a mini-tutorial of what I was able to do so far here > :http://forums.indiegamer.com/showpost.php?p=169352&postcount=9 > > At the end of my tutorial, I wrote : "You can do the same with C++ > classes, and with structures within structures. Swig can parse & wrap > most C/C++ declarations." > > Gloups, I was so wrong..! :-S > > It seems that I can read a struct within my struct, but I cannot write > values to it. > Also, I cannot access the array from within my struct. > > Any help to achieve this would be very welcome. > > Here the problem in detail : > I'm using Python 2.5.2 & Swig 1.3.36. > > The structures : > struct SIn > { > int in1, in2; > > }; > > struct SPythoned > { > SIn Inner; > float Skill[16]; > > }; > > The python code : > ======================= > def TestObject(o): > print(type(o)) > print(type(o.Skill)) > print(o.Skill) > print(type(o.Inner)) > print(type(o.Inner.in1)) > print(o.Inner.in1) > print(o.Inner.in2) > > o.Inner.in1 = 12 > o.Inner.in2 = 17 > > print(o.Inner.in1) > print(o.Inner.in2) > ======================= > > It gives me this output : > ======================= > <class 'TE2008.SPythoned'> > <type 'PySwigObject'> > _20fd1300_p_float > <class 'TE2008.SIn'> > <type 'int'> > 2 > 22 > 2 > 22 > ======================= > > So althought I can read the value, the "o.Inner.inX = Y" are without > effect..! (and checking the value in the object in the C part confirms > this). > > Moreover, if I add these lines : > for i in range(16) : > print(o.Skill[i]) > > I get this error : > Traceback (most recent call last): > File "d:\TE 2008\PyTest.py", line 32, in TestObject > print(o.Skill[i]) > TypeError: 'PySwigObject' object is unsubscriptable > > Any idea how to make this work ..? --------------- -- http://mail.python.org/mailman/listinfo/python-list