【发布时间】:2013-05-27 02:20:56
【问题描述】:
我想编写一个宏,它可以将所有内容都转换为 void*,甚至是成员函数。 代码如下:
#define toVoidStar(xx,yy)\
__asm push ecx; \
__asm mov ecx, yy; \
__asm mov [xx], ecx; \
__asm pop ecx;
当我“调用它”时它给出错误:错误 C2017:非法转义
如果我在代码中使用它就可以正常工作:
void * myvoid;
__asm
{
push ecx;
mov ecx, imageMousePressed;
mov [myvoid], ecx;
pop ecx;
}
我知道这不是一个很好的解决方案,但无论如何有人可以帮助它工作吗?
【问题讨论】:
-
你能详细说明你为什么要这样做吗? void*(void 指针)在没有任何汇编程序的情况下是可能的。
-
由于程序集分号,它不起作用。也许您应该尝试将其重写为模板函数。