各位,小弟调用: hr = AVIStreamReadFormat(m_pAS, 0, m_tBMIH, lSize) 总是返回错误,请帮忙看下,高分求解

hili2006 2009-10-19 08:56:01
Structure BITMAPINFOHEADER '40 bytes
Public biSize As Int32
Public biWidth As Int32
Public biHeight As Int32
Public biPlanes As Short
Public biBitCount As Short
Public biCompression As Int32
Public biSizeImage As Int32
Public biXPelsPerMeter As Int32
Public biYPelsPerMeter As Int32
Public biClrUsed As Int32
Public biClrImportant As Int32
End Structure
Private Declare Function AVIStreamReadFormat Lib "avifil32.dll" (ByVal pavi As Int32, ByVal lPos As Int32, ByRef lpFormat As BITMAPINFOHEADER, ByRef lpcbFormat As Int32) As Int32
Private Declare Function AVIStreamReadFormat Lib "avifil32.dll" (ByVal pavi As Int32, ByVal lPos As Int32, ByRef lpFormat As Int32, ByRef lpcbFormat As Int32) As Int32


Dim lSize As Long
hr = AVIStreamReadFormat(m_pAS, 0, 0, lSize)
If (FAILED(hr) Or lSize < Len(m_tBMIH)) Then
Debug.Print("error5:AVIStreamReadFormat" & hr)
Exit Sub
End If
lSize = Len(m_tBMIH)
hr = AVIStreamReadFormat(m_pAS, 0, m_tBMIH, lSize)
If FAILED(hr) Then
Debug.Print("error6:AVIStreamReadFormat" & hr)
' Exit Sub
End If



代码如上,到第二个AVIStreamReadFormat的时候就hr返回2147205004错误代码,请帮忙看下上述代码那里错误了??

100分送
...全文
134 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
gelinqing 2009-10-21
  • 打赏
  • 举报
回复
ByRef lpFormat As Int32
为啥要 AS int32啊
yanlongwuhui 2009-10-21
  • 打赏
  • 举报
回复
m_pAS的赋值语句以及FAILED函数的定义呢?
hili2006 2009-10-20
  • 打赏
  • 举报
回复
Private m_pGF As Int32
Private m_lFrames As Long
Private m_pAS As Int32
Private m_tBMIH As BITMAPINFOHEADER
Private m_firstFrame As Int32
Private p_DIB As Int32

上述是变量
yanlongwuhui 2009-10-20
  • 打赏
  • 举报
回复
代码贴全些,很多变量的声明都没有
hili2006 2009-10-19
  • 打赏
  • 举报
回复
不要沉了阿
hili2006 2009-10-19
  • 打赏
  • 举报
回复
我写2个avistreamformatread dll声明,是因为有两次调用,参数类型不同
hili2006 2009-10-19
  • 打赏
  • 举报
回复
自己顶一下

16,554

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧