能力值:
( LV2,RANK:10 )
26 楼
当能通俗的表达出自己的意思时,说明已经掌握了它!
能力值:
( LV2,RANK:10 )
27 楼
我前来学习学习,正准备想学
能力值:
( LV2,RANK:10 )
28 楼
这样子表达的是没有返回值,参数为空吧?
能力值:
( LV2,RANK:10 )
29 楼
知识在于交流分享,楼主不错,嘿嘿
能力值:
( LV2,RANK:10 )
30 楼
[QUOTE=J...typedef简单的理解就是给自定义或者已经定义好的类型起一个容易记的名字,比如效力于火箭队的穆托姆博的全名可能连他自己也记不住,如此...[/QUOTE]
俺记得靖哥哥也是这么叫的
能力值:
( LV2,RANK:10 )
31 楼
说得挺有理的
当初我怎么没这么想过
能力值:
( LV2,RANK:10 )
32 楼
正在学C,理解了前面的,那个函数类型的没有理解。
能力值:
( LV3,RANK:20 )
33 楼
使用函数指针更直接的办法是定义函数类型,
typedef int WINAPI TyCall(HWND,LPSTR,LPSTR,UINT);
TyCall*pfCall=(TyCall*)GetProcAddress(hDll,"MessageBoxA");
pfCall(NULL,"HI,I AM FROM USER32.DLL","TEST",MB_OK);
能力值:
( LV2,RANK:10 )
34 楼
函数指针,一直用的很少,更很少像LZ说的那样用了,学习了。
能力值:
( LV2,RANK:10 )
35 楼
以前还以为typedef可以创造类型....
能力值:
( LV2,RANK:10 )
36 楼
绝对好贴,因为阅读这样的帖子后,绝对不会觉得是浪费时间,~~~!!!
能力值:
( LV2,RANK:10 )
40 楼
新人学习了!支持lz分享精神!
对于typedef int (WINAPI * call)(HWND,LPSTR,LPSTR,UINT);
我的理解是:(WINAPI * call)(HWND,LPSTR,LPSTR,UINT) 等同于 int。
不知道对不对!
能力值:
( LV2,RANK:10 )
41 楼
以前学C语言没看到了这个,又学到了一些东西。哈哈。
能力值:
( LV2,RANK:10 )
42 楼
还没看过这方面的呢 以后得多学习下 谢谢楼主了
能力值:
( LV2,RANK:10 )
43 楼
非常感谢楼主分享学习经验
我也学过点C 但是就没这样的认识~惭愧啊
能力值:
( LV2,RANK:10 )
44 楼
很好很强大,学习了,哈哈
能力值:
( LV2,RANK:10 )
45 楼
后面给的这个例子,我看懂了。给力
能力值:
( LV2,RANK:10 )
46 楼
不错的文章,谢谢楼主分享
能力值:
( LV2,RANK:10 )
47 楼
请问这第二种就是传说中的动态调用么?好像messagebox这个api不会出现在pe文件的输入表是不是啊?
能力值:
( LV2,RANK:10 )
48 楼
这个还真得好好看看啊。。谢谢楼主
能力值:
( LV6,RANK:80 )
49 楼
这么好的文章,你说你怕丢人?你保持了中国妇女的传统美德:矜持。
能力值:
( LV6,RANK:80 )
50 楼
其实这篇文章内容不错,却隐藏了一颗定时炸弹,请听我细细道来,当然我也是路人,不一定对的。
(*myMessageBox)(NULL,TEXT("dfdf"),TEXT("dg"),MB_OK);
myMessageBox(NULL,TEXT("dfdf"),TEXT("dg"),MB_OK);
测试发现两种方式调用都可以得出正确结果。
调试发现,*myMessageBox的值跟myMessageBox完全相等(指针跟他所指向的内容==),于是我瞬间想到了以前的问题:
void (*p)()=fun;
void (*p)()=&fun;
关于这个问题,我真的曾经花了很多时间,但终究一场空,有说什么编译器帮忙的,有说。。。的等等,总之没有一个理由能让我在心底发笑。。。。。。。。