vc 中内嵌汇编 怎样调用类的成员函数?

classx{inta;pbulic:f(intb){a=b;}}intfn(intn){returnn*n;}voidmain(){inta,b;__asm{push2... class x
{
int a;
pbulic:
f(int b)
{
a=b;
}
}

int fn(int n)
{
return n*n;
}

void main()
{
int a,b;
__asm
{
push 2;
call fn; //编译通过 求一个数的平方
sub esp,4;
mov a,eax;
}
x c;
__asm
{
push 0;
lea ecx,c;
call x::f //这个地方就错误了 我该如何题名这个函数呢?
}
}
展开
 我来答
阿丶棍
2012-05-27
知道答主
回答量:12
采纳率:0%
帮助的人:6.3万
展开全部
静态成员函数引用前面加::谁都知道,
关键是在VC里面,内嵌汇编的时候,不能引用成员函数,MSDN上面明确说明了
An __asm block can call only global C++ functions that are not overloaded. If you call an overloaded global C++ function or a C++ member function, the compiler issues an error.

You can also call any functions declared with extern "C" linkage. This allows an __asm block within a C++ program to call the C library functions, because all the standard header files declare the library functions to have extern "C" linkage.

懂了吗?其实我也今天才肯定 哈哈~~
上面的global C++ functions 其实就是指 一般的函数,即:非成员函数
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
帐号已注销
2008-02-19 · TA获得超过1682个赞
知道小有建树答主
回答量:2001
采纳率:0%
帮助的人:829万
展开全部
class x
{
int a;
pbulic:
static void f(int b) //加上static 是静态函数才可以class::fun()调用
{
a=b;
}
} ;//这里要有分号
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式