C# 调用ximea camera的xiCam.OpenDevice()会引发异常;无效句柄“;

C# 调用ximea camera的xiCam.OpenDevice()会引发异常;无效句柄“;,c#,C#,我正试图通过C#应用程序控制Ximea摄像头() 我举了一个例子,这家公司的相机。每次我想连接到相机(使用OpenDevice功能),我都会收到一个错误,上面写着“无效句柄”。这意味着什么?我能做些什么来解决这个问题 代码如下: using System; using System.Collections.Generic; using System.Text; using System.Collections; using System.Drawing; using xiApi.NET; nam

我正试图通过C#应用程序控制Ximea摄像头()

我举了一个例子,这家公司的相机。每次我想连接到相机(使用
OpenDevice
功能),我都会收到一个错误,上面写着“无效句柄”。这意味着什么?我能做些什么来解决这个问题

代码如下:

using System;
using System.Collections.Generic;
using System.Text;
using System.Collections;
using System.Drawing;
using xiApi.NET;
namespace xiApi.NET_example
{
class Program
{
 static void Main(string[] args){
 {
  xiCam myCam = new xiCam();
  try
  {
  // Initialize first camera
  myCam.OpenDevice(0);

  // Set device exposure to 2 milliseconds
  int exposure_us = 2000;
  myCam.SetParam(PRM.EXPOSURE, exposure_us);

  // Set device gain to 5 decibels
  float gain_db = 5;
  myCam.SetParam(PRM.GAIN, gain_db);

  // Set image output format to monochrome 8 bit
  myCam.SetParam(PRM.IMAGE_DATA_FORMAT, IMG_FORMAT.MONO8);

  //Start acquisition
  myCam.StartAcquisition();

  // Capture images
  Bitmap myImage;
  int timeout = 1000;
  for (int i = 0; i < 10; i++)
  {
    myCam.GetImage(out myImage, timeout );
    string fName = string.Format("image{0}.bmp", i);
    myImage.Save(fName);
  }
  // Stop acquisition
  myCam.StopAcquisition();
}

catch (System.ApplicationException appExc)
{
  // Show handled error
  Console.WriteLine(appExc.Message);
  System.Console.ReadLine();
  myCam.CloseDevice();
}

finally
{
  myCam.CloseDevice();
}
使用系统;
使用System.Collections.Generic;
使用系统文本;
使用系统集合;
使用系统图;
使用xiApi.NET;
名称空间xiApi.NET_示例
{
班级计划
{
静态void Main(字符串[]参数){
{
xiCam myCam=新的xiCam();
尝试
{
//初始化第一个摄像机
myCam.OpenDevice(0);
//将设备曝光设置为2毫秒
int exposure_us=2000;
myCam.SetParam(PRM.EXPOSURE,EXPOSURE_us);
//将设备增益设置为5分贝
浮动增益_db=5;
myCam.SetParam(PRM.GAIN,GAIN_db);
//将图像输出格式设置为单色8位
myCam.SetParam(PRM.IMAGE\u DATA\u格式,IMG\u格式.MONO8);
//开始采集
myCam.startaquisition();
//捕捉图像
位图图像;
int超时=1000;
对于(int i=0;i<10;i++)
{
GetImage(out myImage,超时);
string fName=string.Format(“图像{0}.bmp”,i);
myImage.Save(fName);
}
//停止采集
myCam.StopAcquisition();
}
catch(System.ApplicationException appExc)
{
//显示已处理的错误
Console.WriteLine(appExc.Message);
System.Console.ReadLine();
myCam.CloseDevice();
}
最后
{
myCam.CloseDevice();
}

您是否绝对确定摄像头工作正常且API安装正确?您发布的代码没有错误检查,那么此错误来自何处?是否是一个对话框?如果是,则听起来像是驱动程序或库。您是否使用调试器逐步完成此代码?如果您使用的是Visual Studio,请使用
F10
。错误发生在哪一行?你确定是设备0而不是1吗?当我设计句柄时,我通常将0保留为NULL。我认为API安装正确,因为程序运行正常,库没有给出任何错误。是的,我使用调试器和myCam.OpenDevice(0)中的行我收到无效句柄的错误。我尝试在摄像机ID中使用0或1,但没有任何更改。请在XIMEA public tracker中创建一个支持票证:我们的支持人员将帮助您解决此问题。此外,请包括有关已安装软件包版本、摄像机型号和序列号的信息。Th谢谢你。