最近PB开发wince的directshow filter,我是在X86的模拟器下开发的,移植了几个simple ,现在遇到了几个问题,想请教大家:
1 MessageBox(NULL, L"点击[OK]结束播放", L"Play MP3", MB_OK); 在模拟器中不能用,返回值S_OK,
但是在模拟器下没有出现MessageBox,什么原因呢?
2 在实验Dump时,保存文件的方框也出不来,然后就死掉了,
if (riid == IID_IFileSinkFilter) {
return GetInterface((IFileSinkFilter *) this, ppv); //这句话导致死机
IFileSinkFilter接口虽然msdn上wince 5.0不支持,但是编译链接通过,且在Include 文件中能找到定义,应该是没有问题的.
怎么一关系到这种对话框有关的情形就会出问题,1 的情况也是,其他的都好用,这是为什么,模拟器的问题吗,还是我的模拟器的问题啊??
3 另外,我应该在模拟器上怎么调试filter ,单步当然最好了,不然能打印出调试信息也不错,但是模拟器要在graphedt构建filter graph才能调试, 打印的信息怎样才能看到.
有谁知道这方面的情况 ,给点信息,不胜感激!!
1,可以用afxmessagebox试试
2,
3,在桌面DC直接输出吧
1. 需要在组件中加入MFC的支持
2. 可以执行sysgen -p directx graphedt,便可在模拟器下使用graphedt
CE50下怎么注册过滤器啊?用REGSRV32.EXE DUMP.DLL成功不了,在GRAPEDIT.EXE里面看不到新注册的DUMP过滤器啊,为什么?注册不成功?但没见报错的提示啊!
引用: 引用 3 楼 xqhrs232 的回复:
CE50下怎么注册过滤器啊?用REGSRV32.EXE DUMP.DLL成功不了,在GRAPEDIT.EXE里面看不到新注册的DUMP过滤器啊,为什么?注册不成功?但没见报错的提示啊!
参考我回复的这篇帖子
http://topic.eeworld.net/u/20080607/11/6801fed9-3285-498b-9fdb-cc158d6483cd.html
参考你写的那个帖子,CE50下的BALL.DLL过滤器注册成功(通过写注册表),在模拟器下运行也可见那个跳动的弹球,但CE下的EZRGB24.DLL老是成功不了,那个IMAGE EFFECTS到是看到了,但不见分支部分,也拖不进过滤器(GRAPHEDT.EXE),报用到的资源已经被使用了,为什么?我还没用啊!EZRGB24.DLL有一个属性页,属性页的注册表项要如何修改?这个跟BALL.DLL有点不一样
在wince5.0下,regsvr32.exe 我用的时候 不好用的,不知道 别人怎么样
wince下的注册问题可以用自己 写注册 表的方式 来解决,不是很难,在
directshow的帮助文档里能够找到,DV simple的例子
此外,我发现在CE下用属性页也会出现问题,愿因是在库里面没有相关属性函数的
实现,这在帮助文档里是有的
此外,我在做实验的时候遇到dump.dll的问题,不知道大家遇到这样的问题了没?