I found a bug on bstr.cpp
engine->RegisterObjectType("bstr", 4, asCALL_RETURNBYVAL);
Register object has a invalid flag asCALL_RETURNBYVAL, only 0,
asOBJ_IS_COMPLEX, asOBJ_IS_NOT_COMPLEX are valid im using for the moment asOBJ_IS_COMPLEX.
Please check its correct.
That's true. I forgot to update the bstr code. Thanks for letting me know.
Actually, the correct flag would be asOBJ_IS_NOT_COMPLEX, this is because C++ treats it just as a normal char* which isn't a complex type, i.e it doesn't have a constructor, destructor, or assignment operator.