标题:关于VC++6.0的函数的小问题
只看楼主
gradual
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2011-10-19
结帖率:33.33%
已结贴  问题点数:1 回复次数:3 
关于VC++6.0的函数的小问题
大家好,我想问下各位高人,vc的函数都有什么区别,为什么有的函数需要在前面写些类型等,有的却不用。例如
SetWindowsHookEx(
        WH_KEYBOARD,        // hook type
        KeyboardProc,     // hook procedure
        NULL,    // handle to application instance
        GetCurrentThreadId()   // thread identifier
      );
    KeyboardProc(
        int code,       // hook code
        WPARAM wParam,  // virtual-key code
        LPARAM lParam   // keystroke-message information
);
函数SetWindowsHookEx前面什么也不用写,而函数KeyboardProc前面应该有的LRESULT CALLBACK被删掉后就报错了?
请不吝赐教!
搜索更多相关主题的帖子: procedure thread 
2011-10-19 07:12
quanshaohui
Rank: 1
来 自:江西抚州
等 级:新手上路
帖 子:8
专家分:3
注 册:2011-10-9
得分:0 
不是很懂
2011-10-19 08:42
sun4742002716
Rank: 2
等 级:论坛游民
帖 子:16
专家分:16
注 册:2008-11-30
得分:1 
KeyboardProc是回调函数,他是主函数调用的窗口过程函数,窗口类.lpfnWndProc
SetWindowsHookEx是个普通的API函数,在调用时不用声明,因为在微软头文件中已经包含。
无论回调函数还是普通的API函数,定义是必不可少的,无论是声明还是定义(如果没有声明的话,而是直接定义的),类型一定要写。
这个API函数之所以没有写类型,是因为此处它正在被调用。而且在其他头文件中已经声明和定义了。
而这个回调函数此处在使用前应该定义,且就在本程序之内,不用放在头文件中,因此定义或者声明前必须给出类型。
2011-10-19 17:30
gradual
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2011-10-19
得分:0 
差不多明白了 多谢!
为什么不把所有的这些函数都放到一个头文件里,用的时候直接用多好,还整这么多麻烦事
2011-10-19 22:08



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-352884-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.087793 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved