| 
			 
					阅读:2032回复:8
				 
				驱动的封装vs驱动与directx的接口
					我看到有的程序对驱动进行了封装,提供了一套api函数,而有的开发是在class driver上开发一个minidriver与directshow的接口兼容,那位大侠能否给我比较一下这两者的优劣?
 
							我现在在作capture的项目,所以主要关心directshow,我有一个capture卡,他对directshow接口的支持特别好,所以在application的开发上我个人觉得比提供api要好,各位大侠怎么认为的呢?  | 
	|
| 
			 沙发# 
								发布于:2003-07-02 09:05				
			
					提供API是为了方便二次开发,一般是否支持directshow接口,主要由驱动决定的,很少有人把对directshow的支持放在API上。				 
							 | 
	|
					
						
  | 
	
| 
			 板凳# 
								发布于:2003-07-02 19:40				
			
					谢谢你的指教,你说的“对directshow的支持放在API上”是什么意思?
 
							进行二次开发是不是就是对API的调用,还是再次封装Api? 如果不进行二次开发,那么那种方式好呢?能否再给我讲讲?  | 
	|
| 
			 地板# 
								发布于:2003-07-03 09:07				
			
					二次开发只的是Capture卡的应用,一般要用使用卡,一种方法是用CreateFile 打开然后进行读写,另一种方法就是调用卡提供的API接口函数,这些函数其实就是对卡的驱动进行了一些封装,方便用户开发,还有就是如果驱动支持VFW、DirectShow接口的话,可以用它对应的API 或  COM 接口来调用。卡提供的API一般都是一个动态连接库。如果卡支持 DirectShow 接口,那么它对该接口的支持一般都是在驱动中实现的,很少在API 也就是动态连接库中实现。				 
							 | 
	|
					
						
  | 
	
| 
			 地下室# 
								发布于:2003-07-03 20:09				
			
					大侠,还有关于ds的问题想向你请教:
 
							我现在有两个采集设备,一个我在dshow的graph edit中可以看到他是一个capture filter,我可以枚举出这个设备,并且可以调用ds的接口函数对其作application的开发。 可是另一个设备他在ds的filter中看不到,这是什么原因?他用的是ms的标准驱动usbscan.SYS,在他之上做的api,现在我也想用ds的编程方法对这个设备进行控制,我是不是应该做个minidriver之类的驱动(作个minidriver就能保证在ds中调用了吗?还是要写个filter什么的),还是用api来仿制ds中的接口函数?  | 
	|
| 
			 5楼# 
								发布于:2003-07-04 08:56				
			
					你的另一个设备不支持DirectShow接口。如果他提供了API我觉得用API远比用DirectShow开发容易。你如果要写驱动就写一个Stream minidriver ,在驱动中支持DirectShow接口。				 
							 | 
	|
					
						
  | 
	
| 
			 6楼# 
								发布于:2003-07-05 16:27				
			
					谢谢大侠的再次指教,你说Api比ds编程容易,确实是这样的,但是功能方面我还是觉得ds比api好。现在我有一个问题就是ds中的IWindow接口(好像叫这个名字把)就是能控制显示位置,比如说指定窗口显示,我可以在MFC中将图象显示在一个控件上,可是api没有这个功能,你说我该怎么实现呢?
 
							再有就是在驱动中得到的rgb数据怎么实现视频显示,一般调用的是什么函数? 谢谢大侠!分给的有些少,下个问题我会开新贴送分的。:)  | 
	|
| 
			 7楼# 
								发布于:2009-06-26 17:35				
			
					问题的答案呢,我正在受着类似的折磨				 
							 | 
	|
| 
			 8楼# 
								发布于:2009-07-02 17:57				
			用户被禁言,该主题自动屏蔽! 				 | 
	|