最近在做一个视频采集得项目,用的是C#,在调整视频的亮度的时候遇到点麻烦,查阅了提供的sdk,是用c++做的,其中有一段调用亮度的代码,不是很懂,请教各位大侠
static char rcsid[] = "$Id: vxdcall.cpp 2.10 1998/06/01 18:03:03 mdimeo Exp $" ;
#define _BUILD_BT848DLL    // all __BT848FUNC functions are exported#include "Bt848fcn.h"
#include "vxdfunc.h"/////////////////////////////////////////////////////////////////////////////
// Public Variable
/////////////////////////////////////////////////////////////////////////////
HANDLE       hVxD;                           // handle to VxD
//===========================================================================
// Functions thunk down to capture driver
//===========================================================================
extern "C" int   DRV_SetVideoSource( int conn );
extern "C" int   DRV_GetVideoSource( void );
extern "C" int   DRV_SetBrightness( int brightness );
extern "C" int   DRV_GetBrightness( void );/////////////////////////////////////////////////////////////////////////////
// Method:  ErrorCode __BT848FUNC Bt848GetBrightness( int * brightness )
// Purpose: Ask VxD what brightness value has set to
// Input:   None
// Output:  int * brightness - brightness value
// Return:  Success or Fail
/////////////////////////////////////////////////////////////////////////////
ErrorCode __BT848FUNC Bt848GetBrightness( int * brightness )
{
   *brightness = DRV_GetBrightness();
   if ( (*brightness < 0) || (*brightness > 255) )
  return ( Fail );
   return( Success );
}哪位大侠能帮忙解释一下,应该如何编译成dll,或者调用呢

解决方案 »

  1.   

    http://www.vckbase.com/document/viewdoc/?id=947
    http://www.vckbase.com/document/viewdoc/?id=580
      

  2.   

    编译成dll,用vc的向导,声称一个win32的dll,把你需要的api export出去。
    __declspec(export)
      

  3.   

    呵呵,还是使用DirectShow做吧。看这段代码好像是使用到了Vxd,在Win2000以后Vxd好像就不能使用了。
      

  4.   

    或者使用vfw做那样你就不必处理与硬件的相关的东东了。关于DirectShow和vfw可以参考一本叫做《VC视频/音频开发案例精选》的书,随书的光盘中有很多实用例子。
      

  5.   

    http://msdn.microsoft.com/msdnmag/issues/03/07/NET/
      

  6.   

    蒋老大,我不是不懂如何调用dll,关键是怎么获取和设置视频源的亮度,在vc里有这样的函数吗
      

  7.   

    在vc里没有和具体硬件相关的函数。我只知道DirectShow中有一些标准的接口可以操作视频源,一般的视频输入设备都支持这些接口的。参考directshow的amcap示例。
      

  8.   

    amcap的亮度设置是通过调用一个api窗口,capDlgVideoFormat,封装好的窗口其实根本没有意义