Hi,
ich versuche gerade mich wieder mit dem teilweise verwirrenden Klassen/Strukturen-Einbindesystem von Angelscript zu beschäftigen und habe dazu ein sehr einfaches Programm geschrieben. Die Typ-Einbindung sieht so aus:
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
struct MyType
{
MyType ()
{
i=0;
f=0.0f;
}
MyType (int i,float f)
{
this->i=i;
this->f=f;
}
int i;
float f;
};
void RegisterMyType (asIScriptEngine* engine)
{
int r;
r = engine->RegisterObjectType("MyType", sizeof(MyType), asOBJ_VALUE | asOBJ_POD ); assert( r >= 0 );
r = engine->RegisterObjectProperty("MyType", "int i", asOFFSET(MyType,i)); assert( r >= 0 );
r = engine->RegisterObjectProperty("MyType", "float f", asOFFSET(MyType,f)); assert( r >= 0 );
}
|
und das Skript folgendermaßen:
|
C-/C++-Quelltext
|
1
2
3
4
5
|
void main (MyType object)
{
object.i=3;
object.f=3.14159;
}
|
Die Scriptfunktion main wird so aufgerufen:
|
C-/C++-Quelltext
|
1
2
3
4
|
MyType object (0,0.0f);
ctx->SetArgAddress (0,&object);
nRet = ctx->Prepare(func);
r = ctx->Execute();
|
Während der Ausführung gibt es eine null pointer exception ausgelöst von der Angelscript VM bezüglich der 3. Zeile des Skripts
Woran könnte dies liegen?
Mfg Helco