| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 898 人关注过本帖
标题: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
等 级:版主
威 望:528
帖 子:9025
专家分:54030
注 册: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
快速回复:vfw中回调函数的问题(参数传递问题)
数据加载中...
 
   



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

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