有关函数指针的问题。 to squiffy: thank your sugguest! 请问:如何强制转换函数指针 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 比如由一个函数:long func(char *p,int a,int b)p是返回的指针,那么用:(long (char *,int,int))p来转换 比如(有多个参数):typedef long(* MY_FUNCTION) (char *a1, int *b1, int *b2, char *a2); 然后在使用时用MY_FUNCTION pMyFunc = (MY_FUNCTION)::GetProcAddress(hUser32, "SetLayeredWindowAttributes"); 假设一个DLL中的函数定义是这样的:dllfun(ULONG i);而你需要传递进函数a、b、c,三个变量,你可以这样实现:typedef struct test{ int a; char b; short c;}PARA_S;PARA_S para;some func:{ dllfunc( (ULONG)(¶m) );}这样的话你在截取了dllfun之后,在你的dllfun里面就可以如下:dllfun(ULONG i){ PARA_S *P = (PARA_S *)i;......}如上你不是就可以解决了使用一个参数传递多个参数的问题了吗?只是注意指针的有效范围就是了。 数据包里的字符串 Tab control 如何寻找exe程序运行所需的dll文件 关于频道列表的制作问题,高手请进!!!急急急急 一个很郁闷的关于显示内存中图象数据的问题。 bmp位图的颜色分量的问题 高分求教! 请教,如何向一个文本框发送一个CTRL+S之类的组合键消息? 请教任何控制远程计算机?? 现在发邮件需要身份验证,怎么办? 更改了对话框的背景,但VC++通用控件的背景仍然为灰色(如静态文本),该如何改变,使之与背景相一致??? 这段代码有什么错误?
long func(char *p,int a,int b)
p是返回的指针,那么用:
(long (char *,int,int))p来转换
typedef long(* MY_FUNCTION) (char *a1, int *b1, int *b2, char *a2);
然后在使用时用
MY_FUNCTION pMyFunc = (MY_FUNCTION)::GetProcAddress(hUser32, "SetLayeredWindowAttributes");
typedef struct test
{
int a;
char b;
short c;
}PARA_S;PARA_S para;some func:
{
dllfunc( (ULONG)(¶m) );
}
这样的话你在截取了dllfun之后,在你的dllfun里面就可以如下:
dllfun(ULONG i)
{
PARA_S *P = (PARA_S *)i;
......
}
如上你不是就可以解决了使用一个参数传递多个参数的问题了吗?只是注意指针的有效范围就是了。