C# 关于调用动态库DLL 非托管函数的问题

zjharry0311 2012-10-09 04:03:13
如题,我打算调用OKAPI32.dll动态库里面的某函数
BOOL WINAPI okCaptureActive(HANDLE hBoard,TARGET Dest, LONG lStart);

在声明外部函数时出问题。

[DllImport("OKAPI32.dll")]
static extern bool okCaptureActive(HANDLE hBoard,TARGET Dest, long lStart);

参数列表处因为标识符有句柄HANDLE,TARGET导致无法编译。
在这里应该怎么解决?
...全文
191 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
St_Jar 2012-10-10
  • 打赏
  • 举报
回复
handle用IntPtr Dest不清楚具体是干嘛的,是否需要用结构,int,byte,多尝试下
owennol 2012-10-10
  • 打赏
  • 举报
回复
改成:
[DllImport("OKAPI32.dll")]
static extern bool okCaptureActive(int hBoard,int Dest, int lStart);
zjharry0311 2012-10-09
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
TARGET不知道是什么,是个结构体么?
handle和long都定义成int好了。
[/Quote]
这函数主体是这样的
BOOL WINAPI okCaptureActive(HANDLE hBoard,\
TARGET Dest, LONG lStart);
功能:实时采集视频输入到指定目标体。这里的目标体可以是VGA屏幕(SCREEN),帧缓存(BUFFER),帧存体(FRAME)。

参数: hBoard: 输入卡句柄。
Dest:要采集到的目标体,可以是SCREEN,BUFFER或 FRAME。目标体的宏定义参见OKAPI32.H。
lStart:采集到目标体的起始帧序号(起始为0),对于只有一帧 的目标体,如SCREEN,该值只能为0。

返回值:如果调用成功,返回该目标体所支持的最大帧数。如果失败(如由于格式不支持等)返回0(FALSE)。如果该目标体不被支持则返回-1。
andy_wanhl 2012-10-09
  • 打赏
  • 举报
回复
static 表示其他地方可以直接調用,
如果在類內部調用,則要加上類本身,或者去掉修飾符static
zhanglong19891129 2012-10-09
  • 打赏
  • 举报
回复
c# 是区分大小写的了.....把大小写确定下.
threenewbee 2012-10-09
  • 打赏
  • 举报
回复
TARGET不知道是什么,是个结构体么?
handle和long都定义成int好了。

109,897

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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