64,654
社区成员
发帖
与我相关
我的任务
分享
typedef int(*lpAddFun)(int,int)
//上面这句定义了一个函数指针类型,把lpAddFun定义为指向符合 int funcname(int, int)形式的函数,lpAddFun类型的变量可以指向任意符合这个形式的函数,例如你的int add(int x,int y)
addFun = (lpAddFun)GetProAddress(hDll,"add");//你的代码没体现,但是应该有一句定义addFun 的语句,例如lpAddFun addFun;这句代码使函数指针变量addFun指向了你的函数int add(int x,int y),类似于你已经有了定义int addFun(int x,int y)
typedef int(*lpAddFun)(int,int);
addFun = (lpAddFun)GetProAddress(hDll,"add");
typedef int(*lpAddFun)(int,int);
的意思 lpAddFun 便是函数指针 int (*) (int, int)类型的别名. addFun = (lpAddFun)GetProAddress(hDll,"add");
则实现使用实参 hDll和"add" 返回函数 int add( int x, int y) 的地址, 强制转换之后赋值给addFun. 那么addFun此时便指向了代码对的 int add( int x, int y).