请问在VB里面如何调用神龙卡的API函数啊??????
很急啊,请搞过VOD开发的同仁留下QQ或E-MAIL好吗?

解决方案 »

  1.   

    再问一个问题,谁用过WIN32API函数Opendriver,为什么我每次调用这个API函数打开一个驱动,返回的值都是0?
    路过的帮我顶啊
      

  2.   

    我按照开发文档里的说明,调用OpenDriver这个API函数,打开神龙卡的驱动程序,为什么总是出错?返回值是0
    Public Declare Function OpenDriver(ByVal lpDriverName as String, ByVal lpSectionName as String, ByVal lParam as long) as Longdim Iopen as Long
    Iopen= OpenDriver("reeldrv",0,0)
    请高手指点以上代码错在哪里?
    在VC里用下面的代码可以正常打开
    HDRVR hReelDrv = OpenDriver(“ReelDrv”, NULL, NULL);
      

  3.   

    lpSectionName 是String型的,你怎么用0传给它?
      

  4.   

    我改成Public Declare Function OpenDriver Lib "winmm.dll" Alias (ByVal szDriverName As String, ByVal szSectionName As Any, ByVal lParam2 As Any) As LongDim Iopen As Long
    Iopen = OpenDriver("reeldrv", ByVal 0&, ByVal 0&)
    结果还是不行
      

  5.   

    #define DRV_COMMAND DRV_USER+1#define MAKEWORD(low,high)  ((WORD) (((BYTE)(low)) | (((WORD) ((BYTE)(high)))<<8)))
    #define MAKEDWORD(a,b) MAKELPARAM(a,b)#define FMPCommand(a,b,c,d) SendDriverMessage(hReelDrv,DRV_COMMAND,MAKELPARAM(MAKEWORD(a,b),c),d)#include "fmpmacs.h"
    // These macros can now be called exactly as you would in DOS
    {
    HDRVR hReelDrv = OpenDriver(“ReelDrv”, NULL, NULL);
    if( !hReelDrv) 
    {
    MessageBox ( NULL,
      "ReelMagic driver is not installed.",
      szError,
      MB_ICONASTERISK | MB_OK);
    }// Your app hereCloseDriver(hReelDrv,NULL,NULL);
    }
    哪位大哥能帮忙注释一下上面的VC代码吗?这是官方提供的VC演示代码,我只会VB,看不懂VC
    我得用VB语言重写上面的代码
      

  6.   

    一、
    我建议你不要试图用VB改写VC代码,这样又费马达又费电不说,而且有些功能无法用VB实现.例如指针.
    您可以用VC写个调用神龙卡的Dll,然后用VB调用该Dll。
    二、
    可以用Win32的API——MCI来操作神龙卡,也可以用RealMagic提供的FMP。由于FMP实际上也是封装了MCI的若干函数集,所以在VC中直接用RealMagic提供的FMP,比用MCI要简单方便些。
    三、
    关于调用MCI,请详细参阅RealMagic的MCIPLAY例程序。
    关于调用FMP,请详细参阅RealMagic的FMPPLAY例程序。
    四、
    楼主贴出的示例代码是打开RealMagic驱动的。在VB中直接调用是不行(我试过,但为什么会这样,我也不太清楚)。
    你可以这样(具体的变量定义可以查看MSDN):
    MCI_DGV_OPEN_PARMS mciMO;
    MCI_PLAY_PARMS mciPlay;  DWORD dwResult,dwFlags;
    //通过打开文件对话框选定一个文件
     ofn.lStructSize       = sizeof(OPENFILENAME);
     ofn.hwndOwner   = hwnd;
     ofn.lpstrFilter   = szFilterSpec;
     ofn.lpstrCustomFilter = NULL;
     ofn.nMaxCustFilter   = 0;
     ofn.nFilterIndex   = 1;
     ofn.lpstrFile         = szFileName;
     ofn.nMaxFile   = MAXFILENAME;
     ofn.lpstrInitialDir   = NULL;
     ofn.lpstrFileTitle    = szFileTitle;
     ofn.nMaxFileTitle     = MAXFILENAME;
     ofn.lpstrTitle        = NULL;
     ofn.lpstrDefExt       = "TXT";
     ofn.Flags             = 0;
    GetOpenFileName ((LPOPENFILENAME)&ofn)
    //打开驱动设备
    mciMO.lpstrDeviceType="MpegVideo";
    mciMO.lpstrElementName=ofn.lpstrFile;
    mciMO.lpstrAlias=0;
    mciMO.dwCallback=0;
    mciMO.wDeviceID=0;mciMO.dwStyle=WS_CHILD|WS_BORDER|WS_DISABLED;
    mciMO.hWndParent=hWnd;
    dwFlags=(DWORD)(MCI_OPEN_ELEMENT|MCI_DGV_OPEN_PARENT|MCI_DGV_OPEN_WS);dwResult=mciSendCommand(0,MCI_OPEN,dwFlags,(DWORD)(LPMCI_DGV_OPEN_PARMS) &mciMO);
    //然后就可以Play、SetVolume等等了...
    五、如果你用VB完成了对神龙卡的操作或还具体遇到什么问题,请Mail:[email protected]
    六、上述不尽正确,有错请指正。
      

  7.   

    一、
    我建议你不要试图用VB改写VC代码,这样又费马达又费电不说,而且有些功能无法用VB实现.例如指针.
    您可以用VC写个调用神龙卡的Dll,然后用VB调用该Dll。
    二、
    可以用Win32的API——MCI来操作神龙卡,也可以用RealMagic提供的FMP。由于FMP实际上也是封装了MCI的若干函数集,所以在VC中直接用RealMagic提供的FMP,比用MCI要简单方便些。
    三、
    关于调用MCI,请详细参阅RealMagic的MCIPLAY例程序。
    关于调用FMP,请详细参阅RealMagic的FMPPLAY例程序。
    四、
    楼主贴出的示例代码是打开RealMagic驱动的。在VB中直接调用是不行(我试过,但为什么会这样,我也不太清楚)。
    你可以这样(具体的变量定义可以查看MSDN):
    MCI_DGV_OPEN_PARMS mciMO;
    MCI_PLAY_PARMS mciPlay;  DWORD dwResult,dwFlags;
    //通过打开文件对话框选定一个文件
     ofn.lStructSize       = sizeof(OPENFILENAME);
     ofn.hwndOwner   = hwnd;
     ofn.lpstrFilter   = szFilterSpec;
     ofn.lpstrCustomFilter = NULL;
     ofn.nMaxCustFilter   = 0;
     ofn.nFilterIndex   = 1;
     ofn.lpstrFile         = szFileName;
     ofn.nMaxFile   = MAXFILENAME;
     ofn.lpstrInitialDir   = NULL;
     ofn.lpstrFileTitle    = szFileTitle;
     ofn.nMaxFileTitle     = MAXFILENAME;
     ofn.lpstrTitle        = NULL;
     ofn.lpstrDefExt       = "TXT";
     ofn.Flags             = 0;
    GetOpenFileName ((LPOPENFILENAME)&ofn)
    //打开驱动设备
    mciMO.lpstrDeviceType="MpegVideo";
    mciMO.lpstrElementName=ofn.lpstrFile;
    mciMO.lpstrAlias=0;
    mciMO.dwCallback=0;
    mciMO.wDeviceID=0;mciMO.dwStyle=WS_CHILD|WS_BORDER|WS_DISABLED;
    mciMO.hWndParent=hWnd;
    dwFlags=(DWORD)(MCI_OPEN_ELEMENT|MCI_DGV_OPEN_PARENT|MCI_DGV_OPEN_WS);dwResult=mciSendCommand(0,MCI_OPEN,dwFlags,(DWORD)(LPMCI_DGV_OPEN_PARMS) &mciMO);
    //然后就可以Play、SetVolume等等了...
    五、如果你用VB完成了对神龙卡的操作或还具体遇到什么问题,请Mail:[email protected]
    六、上述不尽正确,有错请指正。
    七、写了将近半小时,多少也应该给点分意思一下吧!反正不是钱。