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
Quote:
Quote:
>>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,
Quote:
Quote:
>>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, emmanuel.rivo...@gmail.com wrote:
Quote:
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/showpos...52&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 ..?
---------------