本文整理汇总了C++中MethodInfo::invoke方法的典型用法代码示例。如果您正苦于以下问题:C++ MethodInfo::invoke方法的具体用法?C++ MethodInfo::invoke怎么用?C++ MethodInfo::invoke使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类MethodInfo
的用法示例。
在下文中一共展示了MethodInfo::invoke方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: bootstrap
void Assembly::bootstrap()
{
utArray<Type *> types;
getTypes(types);
Type *btype = vm->getType("system.Bootstrap");
for (UTsize i = 0; i < types.size(); i++)
{
Type *type = types[i];
if (type->getFullName() == "system.Null")
{
continue;
}
if (type->castToType(btype))
{
MemberInfo *mi = type->findMember("initialize");
assert(mi);
assert(mi->isMethod());
MethodInfo *method = (MethodInfo *)mi;
method->invoke(NULL, 0);
}
}
}
示例2: connectToDebugger
void Assembly::connectToDebugger(const char *host, int port)
{
if (!vm)
{
LSError("Assembly::connectToDebugger called on uninitialized assembly");
}
Type *debuggerClient = vm->getType("system.debugger.DebuggerClient");
if (!debuggerClient)
{
LSError("Unable to get system.debugger.DebuggerClient");
}
MethodInfo *method = debuggerClient->findMethodInfoByName("connect");
if (!method)
{
LSError("Unable to get system.debugger.DebuggerClient.connect method");
}
lua_pushstring(vm->VM(), host);
lua_pushnumber(vm->VM(), port);
method->invoke(NULL, 2);
}
示例3: execute
void Assembly::execute()
{
MethodInfo *method = getStaticMethodInfo("main");
if (!method)
{
LSError("Unable to find main method in Assembly %s", getName().c_str());
}
method->invoke(NULL, 0);
}
示例4: invokeStaticMethod
void LSLuaState::invokeStaticMethod(const utString& typePath,
const char *methodName, int numParameters)
{
Type *type = getType(typePath.c_str());
lmAssert(type, "LSLuaState::invokeStaticMethod unknown type: %s", typePath.c_str());
MemberInfo *member = type->findMember(methodName);
lmAssert(member, "LSLuaState::invokeStaticMethod unknown member: %s:%s", typePath.c_str(), methodName);
if (!member->isMethod())
{
lmAssert(0, "LSLuaState::invokeStaticMethod member: %s:%s is not a method", typePath.c_str(), methodName);
}
MethodInfo *method = (MethodInfo *)member;
lmAssert(method->isStatic(), "LSLuaState::invokeStaticMethod member: %s:%s is not a static method", typePath.c_str(), methodName);
method->invoke(NULL, numParameters);
}
示例5: AvmAssert
// entry point when the first call to the method is late bound.
/*static*/ Atom MethodInfo::verifyCoerceEnter(MethodEnv* env, int argc, Atom* args)
{
MethodInfo* f = env->method;
#ifdef AVMPLUS_VERIFYALL
// never verify late in verifyall mode
AvmAssert(!f->pool()->core->config.verifyall);
#endif
f->verify(env->toplevel(), env->abcEnv());
#if VMCFG_METHODENV_IMPL32
// we got here by calling env->_implGPR, which now is pointing to verifyEnter(),
// but next time we want to call the real code, not verifyEnter again.
// All other MethodEnv's in their default state will call the target method
// directly and never go through verifyEnter().
env->_implGPR = f->implGPR();
#endif
AvmAssert(f->_invoker != MethodInfo::verifyCoerceEnter);
return f->invoke(env, argc, args);
}