int result = m_engine->ExecuteString(0, script, &m_defaultContext, asEXECSTRING_USE_MY_CONTEXT);
replaced by int result = ExecuteString(m_engine, script, 0, m_defaultContext);
? No need to specify asEXECSTRING_USE_MY_CONTEXT anywhere? And what is the difference between scriptstring and scriptstdstring?