我做一个视频捕捉的程序,用了这里的源码http://ej.bantz.com/video/src/advanced.zip
想直接捕捉一帧存为BMP文件,代码如下:
Dim abcNull As String
Dim MyVar
MyVar = Null
sBmpName = "c:\000.bmp" & Str(MyVar)
 capPreview lwndC, True
 capGrabFrameNoStop lwndC
 capFileSaveDIB lwndC, StrPtr(sBmpName)
问题是怎么存也不成功,capFileSaveDIB要求的文件名指针怎么传呢?strprt,varptr均试过不行,文件名指针VB没办法用吗?查了很多资料都没找到答案,请各位大侠指教!

解决方案 »

  1.   

    http://www.experts-exchange.com/Programming/Programming_Languages/Cplusplus/Q_10347354.html有一段c代码,你参考一下
      

  2.   

    //strprt,varptr均试过不行,文件名指针VB没办法用吗?查了很多资料都没找到答案,请各位大侠指教!一般就是用strptr获得字串地址,需要先给字串赋值或者:
    你先转成byte数组,然后传递第1个元素
      

  3.   

    你用的是VFW吧?
    capFileSaveDIB不是保存图片用的函数,那是将图片传出到设备无关位图进行保存用的。
    你要保存图片应该用capFileSaveAs:
    Function capFileSaveAs(ByVal lwnd As Long, szName As String) As Boolean
       capFileSaveAs = SendMessageS(lwnd, WM_CAP_FILE_SAVEAS, 0, szName)
    End Function
    这个函数
      

  4.   

    已经验证过了,保存图片到文件就是使用capFileSaveAs。
    更正一下,capFileSaveDIB是用来将图像内容复制到指针所指的内存区域用的。