这段代码编译(正如我所期望的):
typedef void __stdcall (*Func)();
struct A {
static void __stdcall f() { }
};
int main() {
Func p = A::f;
}但这一条:
struct A {
typedef void __stdcall (*Func)();
static void __stdcall f() { }
};
int main() {
A::Func p = A::f;
}失败,并显示不太有用的错误消息:
error: invalid conversion from `void (*)()' to `void (*)()'我在Vista下使用g++ 3.4.2 (我知道,它很古老,但我现在无法访问任何其他环境)。显然,我在这里遗漏了一些东西。任何帮助都将不胜感激。
发布于 2010-12-27 02:21:34
语法是void(__stdcall *)(),而不是void __stdcall (*)()。
https://stackoverflow.com/questions/4534907
复制相似问题