CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
花落谁家,你作主! 盛大widget设计大赛英雄榜
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VB >  基础类

如何在VB中静态调用DLL函数

楼主guoxiaohong()2000-05-29 14:30:00 在 VB / 基础类 提问

WIN98中提供了VFW.H和VFW32.lib文件,但没有提供该函数的DLL文件,本人急需调用该LIB文件中的函数,那位高手能告之如何从LIB和头文件调用函数,我的EMAIL是JSRGSUN@CMMAIL.COM 问题点数:50、回复次数:5Top

1 楼jally()回复于 2000-05-29 14:54:00 得分 0

    有这两个文件,你大不小用VC自己写一个DLL来满足自己的需要。何必要费这么大劲呢?Top

2 楼Un1()回复于 2000-05-29 23:40:00 得分 0

这些函数在Avicap32.dll中,   以及SendMessage函数的宏!Top

3 楼guoxiaohong()回复于 2000-05-30 11:19:00 得分 0

请问UN1:比如我要调用函数capCreateCaptureWindow和capDriveConnect,如何在VB中使用avicap32.dll和sendmessage?多谢!Top

4 楼sanhan()回复于 2000-05-30 16:05:00 得分 0

如果你用VB3,有一个视频采集控件可以用。  
  不然最好用C来写。在VB中好象回调比较难处理,麻烦太多,很多人为此专门写控件。Top

5 楼Un1()回复于 2000-05-31 19:26:00 得分 50

申明部分:  
   
  'capture   window   function  
  Public   Const   WS_CHILD   =   &H40000000  
  Public   Const   WS_VISIBLE   =   &H10000000  
   
  Public   Const   MAXVIDDRIVERS   =   10  
   
  Public   Declare   Function   capCreateCaptureWindow   Lib   "avicap32"   Alias   "capCreateCaptureWindowA"   (ByVal   lpszWindowName   As   String,   ByVal   dwStyle   As   Long,   ByVal   x   As   Long,   ByVal   y   As   Long,   ByVal   nWidth   As   Long,   ByVal   nHeight   As   Long,   ByVal   hwndParent   As   Long,   ByVal   nID   As   Long)   As   Long  
  Public   Declare   Function   DestroyWindow   Lib   "user32"   (ByVal   hwnd   As   Long)   As   Long  
   
  'capture   window   messages  
  Public   Const   WM_USER   =   &H400  
   
  Public   Const   WM_CAP_START   =   WM_USER  
   
  'Public   Const   WM_CAP_UNICODE_START   =   WM_USER   +   100  
   
  'Public   Const   WM_CAP_SET_CALLBACK_ERROR   =   (WM_CAP_START   +   2)  
  'Public   Const   WM_CAP_SET_CALLBACK_STATUS   =   (WM_CAP_START   +   3)  
   
  'Public   Const   WM_CAP_SET_CALLBACK_YIELD   =   (WM_CAP_START   +   4)  
  Public   Const   WM_CAP_SET_CALLBACK_FRAME   =   (WM_CAP_START   +   5)  
  'Public   Const   WM_CAP_SET_CALLBACK_VIDEOSTREAM   =   (WM_CAP_START   +   6)  
  'Public   Const   WM_CAP_SET_CALLBACK_WAVESTREAM   =   (WM_CAP_START   +   7)  
  'Public   Const   WM_CAP_GET_USER_DATA   =   (WM_CAP_START   +   8)  
  'Public   Const   WM_CAP_SET_USER_DATA   =   (WM_CAP_START   +   9)  
   
  Public   Const   WM_CAP_DRIVER_CONNECT   =   (WM_CAP_START   +   10)  
  Public   Const   WM_CAP_DRIVER_DISCONNECT   =   (WM_CAP_START   +   11)  
   
  'Public   Const   WM_CAP_DRIVER_GET_NAME   =   (WM_CAP_START   +   12)  
  'Public   Const   WM_CAP_DRIVER_GET_VERSION   =   (WM_CAP_START   +   13)  
   
  'Public   Const   WM_CAP_DRIVER_GET_CAPS   =   (WM_CAP_START   +   14)  
   
  'Public   Const   WM_CAP_FILE_SET_CAPTURE_FILEA   =   (WM_CAP_START   +   20)  
  'Public   Const   WM_CAP_FILE_GET_CAPTURE_FILEA   =   (WM_CAP_START   +   21)  
  'Public   Const   WM_CAP_FILE_SAVEASA   =   (WM_CAP_START   +   23)  
  'Public   Const   WM_CAP_FILE_SAVEDIBA   =   (WM_CAP_START   +   25)  
  '//   out   of   order   to   save   on   ifdefs  
  'Public   Const   WM_CAP_FILE_ALLOCATE   =   (WM_CAP_START   +   22)  
  'Public   Const   WM_CAP_FILE_SET_INFOCHUNK   =   (WM_CAP_START   +   24)  
   
  'Public   Const   WM_CAP_EDIT_COPY   =   (WM_CAP_START   +   30)  
   
  'Public   Const   WM_CAP_SET_AUDIOFORMAT   =   (WM_CAP_START   +   35)  
  'Public   Const   WM_CAP_GET_AUDIOFORMAT   =   (WM_CAP_START   +   36)  
   
  Public   Const   WM_CAP_DLG_VIDEOFORMAT   =   (WM_CAP_START   +   41)  
  Public   Const   WM_CAP_DLG_VIDEOSOURCE   =   (WM_CAP_START   +   42)  
  Public   Const   WM_CAP_DLG_VIDEODISPLAY   =   (WM_CAP_START   +   43)  
  Public   Const   WM_CAP_GET_VIDEOFORMAT   =   (WM_CAP_START   +   44)  
  'Public   Const   WM_CAP_SET_VIDEOFORMAT   =   (WM_CAP_START   +   45)  
  Public   Const   WM_CAP_DLG_VIDEOCOMPRESSION   =   (WM_CAP_START   +   46)  
   
  Public   Const   WM_CAP_SET_PREVIEW   =   (WM_CAP_START   +   50)  
  Public   Const   WM_CAP_SET_OVERLAY   =   (WM_CAP_START   +   51)  
  Public   Const   WM_CAP_SET_PREVIEWRATE   =   (WM_CAP_START   +   52)  
  Public   Const   WM_CAP_SET_SCALE   =   (WM_CAP_START   +   53)  
  'Public   Const   WM_CAP_GET_STATUS   =   (WM_CAP_START   +   54)  
  'Public   Const   WM_CAP_SET_SCROLL   =   (WM_CAP_START   +   55)  
   
  'Public   Const   WM_CAP_GRAB_FRAME   =   (WM_CAP_START   +   60)  
  'Public   Const   WM_CAP_GRAB_FRAME_NOSTOP   =   (WM_CAP_START   +   61)  
   
  'Public   Const   WM_CAP_SEQUENCE   =   (WM_CAP_START   +   62)  
  'Public   Const   WM_CAP_SEQUENCE_NOFILE   =   (WM_CAP_START   +   63)  
  'Public   Const   WM_CAP_SET_SEQUENCE_SETUP   =   (WM_CAP_START   +   64)  
  'Public   Const   WM_CAP_GET_SEQUENCE_SETUP   =   (WM_CAP_START   +   65)  
   
  'Public   Const   WM_CAP_SET_MCI_DEVICEA   =   (WM_CAP_START   +   66)  
  'Public   Const   WM_CAP_GET_MCI_DEVICEA   =   (WM_CAP_START   +   67)  
  'Public   Const   WM_CAP_STOP   =   (WM_CAP_START   +   68)  
  'Public   Const   WM_CAP_ABORT   =   (WM_CAP_START   +   69)  
   
  'Public   Const   WM_CAP_SINGLE_FRAME_OPEN   =   (WM_CAP_START   +   70)  
  'Public   Const   WM_CAP_SINGLE_FRAME_CLOSE   =   (WM_CAP_START   +   71)  
  'Public   Const   WM_CAP_SINGLE_FRAME   =   (WM_CAP_START   +   72)  
   
  'Public   Const   WM_CAP_PAL_OPENA   =   (WM_CAP_START   +   80)  
  'Public   Const   WM_CAP_PAL_SAVEA   =   (WM_CAP_START   +   81)  
   
  'Public   Const   WM_CAP_PAL_PASTE   =   (WM_CAP_START   +   82)  
  'Public   Const   WM_CAP_PAL_AUTOCREATE   =   (WM_CAP_START   +   83)  
  'Public   Const   WM_CAP_PAL_MANUALCREATE   =   (WM_CAP_START   +   84)  
   
  '//   Following   added   post   VFW   1.1  
  'Public   Const   WM_CAP_SET_CALLBACK_CAPCONTROL   =   (WM_CAP_START   +   85)  
   
  Public   Const   WM_PAINT   =   &HF  
  Public   Declare   Function   SendMessage   Lib   "user32"   Alias   "SendMessageA"   (ByVal   hwnd   As   Long,   ByVal   wMsg   As   Long,   ByVal   wParam   As   Long,   lParam   As   Any)   As   Long  
  'Public   Declare   Function   PostMessage   Lib   "user32"   Alias   "PostMessageA"   (ByVal   hwnd   As   Long,   ByVal   wMsg   As   Long,   ByVal   wParam   As   Long,   lParam   As   Any)   As   Long  
  'Public   Declare   Function   GetParent   Lib   "user32"   (ByVal   hwnd   As   Long)   As   Long  
   
  Public   Const   SWP_NOZORDER   =   &H4  
  Public   Const   SWP_NOMOVE   =   &H2  
  Public   Declare   Function   SetWindowPos   Lib   "user32"   (ByVal   hwnd   As   Long,   ByVal   hWndInsertAfter   As   Long,   ByVal   x   As   Long,   ByVal   y   As   Long,   ByVal   cx   As   Long,   ByVal   cy   As   Long,   ByVal   wFlags   As   Long)   As   Long  
   
  'video   buffer   struct  
  Type   VIDEOHDR  
          lpData     As   Long       ';                                   /*   pointer   to   locked   data   buffer   */  
          dwBufferLength     As   Long           ';                   /*   Length   of   data   buffer   */  
          dwBytesUsed   As   Long   '                         /*   Bytes   actually   used   */  
          dwTimeCaptured     As   Long   '                   /*   Milliseconds   from   start   of   stream   */  
          dwUser     As   Long   '                                   /*   for   client's   use   */  
          dwFlags   As   Long   '                                 /*   assorted   flags   (see   defines)   */  
          dwReserved(3)       As   Long                       '/*   reserved   for   driver   */  
  End   Type  
   
  ......  
   
   
  代码部分:  
   
  Private   Sub   UserControl_Initialize()  
          If   glpLocalBuf   Then   Err.Raise   47  
           
          hWndCap   =   capCreateCaptureWindow("Local   Video",   WS_CHILD   Or   WS_VISIBLE,   0,   0,   0,   0,   hwnd,   0)  
           
          If   hWndCap   =   0   Then   Err.Raise   7  
                   
          If   SendMessage(hWndCap,   WM_CAP_SET_CALLBACK_FRAME,   0,   ByVal   GetProcAddress(AddressOf   VideoCallbackProc))   =   0   Then  
                  DestroyWindow   hWndCap  
                   
                  Err.Raise   7  
          End   If  
           
  ......  
   
   
  明白没?!Top

相关问题

  • 关于VB调用dll里char*函数
  • DLL调用函数问题
  • DLL的函数调用????
  • 请教一个关于VB调用VC DLL函数的问题
  • 高分请教vb中调用cdecl dll函数的方法?
  • 在VB中通过字符串调用一个外部dll中的函数,是用哪个函数?
  • 如何声明正规Dll导出函数,使该函数可同时被VC/VB/Delphi调用?
  • vb 调用 VC 编译成功的 DLL 字符串处理函数出错
  • !!!重新提一个关于在 VB 中调用 DLL 中的函数的问题!!!
  • VB做DLL问题(函数如何像WinAPI一样声明后即可调用)

关键词

  • 函数
  • vb
  • 文件
  • start
  • dll
  • 调用
  • cap
  • wm
  • avicap
  • byval

得分解答快速导航

  • 帖主:guoxiaohong
  • Un1

相关链接

  • Visual Basic类图书
  • Visual Basic类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo