标题:vfw中回调函数的问题(参数传递问题)
只看楼主
ucyan
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:61
专家分:198
注 册:2011-4-12
结帖率:85.71%
已结贴  问题点数:20 回复次数:3 
vfw中回调函数的问题(参数传递问题)
程序代码:
a.h
class a
{
public:
a(void);
~a(void);
static LRESULT WINAPI EncodeCallback(HWND hWnd, LPVIDEOHDR lpVHdr);
public:
int m;
static a* pThis;
};
a.cpp
a* a::pThis;
a:a(void)
{
pThis = this;
}
LRESULT WINAPI a::EncodeCallback(HWND hWnd, LPVIDEOHDR lpVHdr)
{
pThis->m;  //通过静态成员能够访问到类中的成员
}


这种方法只能对应一个类实例,但是如果多个类实例的话就不行(会获得最后一个类实例的成员)
现在有一个方法就是想EncodeCallback这个静态的回调函数传递一个this指针(网上说)
但是具体实现我不会,我想问一下怎样能够实现,谢谢
EncodeCallback(HWND hWnd, LPVIDEOHDR lpVHdr)的函数原型是这样,只有两个参数
2012-06-29 14:32
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:20 
http://msdn.
用 lpVHdr->dwUser 保存 this
2012-06-29 14:37
ucyan
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:61
专家分:198
注 册:2011-4-12
得分:0 
请问具体怎样实现?谢谢

[ 本帖最后由 ucyan 于 2012-6-29 17:06 编辑 ]
2012-06-29 15:28
ucyan
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:61
专家分:198
注 册:2011-4-12
得分:0 
以找到解决方法,通过capSetUserData(hwnd, (DWORD)this);传递this指针到用户数据中
在回调函数中调用capGetUserData(hwnd)获得相应的指针。
但是rjsp提到的lpVHdr->dwUser 保存 this不知道怎样实现
2012-06-29 18:37



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




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

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