当前位置:编程学习 > VB >>

关于 检测到 PInvokeStackImbalance 求助

用VS2012写了个对采集卡的程序,但在调用视频录像时出现了报错:

检测到 PInvokeStackImbalance
Message: 对 PInvoke 函数“VideoTest!VideoTest.Form1::DXStartCapture”的调用导致堆栈不对称。原因可能是托管的 PInvoke 签名与非托管的目标签名不匹配。请检查 PInvoke 签名的调用约定和参数与非托管的目标签名是否匹配。

问题出现在
DXStartCapture(DxMediaFunction.CardHandle(nCard), SaveVideoFile, False, TimeValue, SizeValue, Notify)
的引用上

<DllImport("DXMediaCap.dll", SetlastError:=True)>
    Public Shared Sub DXStartCapture(Device As IntPtr, szFileName As String, saveAudio As Boolean, ByRef timeSize As Integer, ByRef dataSize As Integer, saveNotify As Point)
    End Sub


对于DXStartCapture的说明,在厂家给来的文档中是这样描述的:
unsigned __stdcall DXStartCapture(device_handle device, 
                                      TCHAR* szFileName,
                                       BOOL saveAudio,                        
                                      unsigned* timeSize = NULL,
                                       unsigned* dataSize = NULL,
                                      ISaveNotify* saveNotify = NULL);

说明:开始视频录像
参数: device - [in] 视频设备通道句柄
   szFileName - [in] 指定录像文件文件名。NULL - 停止录像
   saveAudio - [in] 是否将音频也录制到文件中
  timeSize - [in] 限定录像文件的时间长度(单位:秒),NULL - 不限制
  dataSize - [in] 限定录像文件的数据长度(单位:字节),NULL - 不限制
  saveNotify - [in] 录像事件通知接口指针
返回值:0 - 成功;失败则返回错误代码


有什么办法解决没啊?救助各位高手啊 视频 VB.net 采集卡 
补充:VB ,  多媒体
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,