【发布时间】:2010-02-18 18:12:27
【问题描述】:
基本上,我希望能够做这样的事情:
//assume myFunction is defined and takes one argument that is an int
char * functionName = "myFunction";
int arg = 5;
__asm{
push a
call functionName
}
基本上我想调用一个名称存储在字符串中的函数。这样做的正确语法是什么?
编辑: 我们在谈论 x86 汇编
【问题讨论】:
-
改写问题。 single int 作为参数 char * 是什么意思?你错过了一个重要的细节——你在看什么样的处理器?您想要大致的想法还是实际的类似 x86 的汇编代码?
-
我看不懂样本。调用不能是字符串,它必须是函数指针。您需要获取指向该函数的指针才能调用它。一种可能性是在您自己的 DLL 上使用 GetProcAddr。
-
对不起,混淆了,我的意思是该函数接受一个 int 类型的参数:被调用的函数并不重要,我只是在解释为什么我将 "a: 推入堆栈。
标签: assembly call inline-assembly