c# - 使用 Matrox ActiveMIL 库控制光谱相机 - 检测到无效的 VARIANT
问题描述
我正在用 C# 编写一个软件来控制和接收来自使用 cameralink 接口的光谱相机的图像,使用 Matrox 公司的 Framegrabber 和 ActiveMIL 库。我正在使用 Visual Studio 2008。
该库提供 ActiveX 控件以在控件窗口中接收和显示相机图像,但我需要将控件加载的数据传递给我自己的数组。
该库为我提供了以下方法来做到这一点:
void object.Get{
ref Array UserArray,
ImFormatConstants Format,
ImBandConstats Band,
int OffsetX,
int OffsetY,
int SizeX,
int SizeY
}
然后,我编写了如下代码:
Object IMG = new Object[256*320]; //Size of image is 256 rows and 320 columns
axMImage1.Get(ref IMG, Matrox.ActiveMIL.ImFormatConsts.imPlanar, Matrox.ActiveMIL.ImBandConstants.imAllBands, 0, 0, 320, 256);
当我执行此代码时,我收到以下错误:
从非托管 VARIANT 转换为托管对象期间检测到无效 VARIANT。将无效的 VARIANT 传递给 CLR 可能会导致意外异常、损坏或数据丢失
你能帮我理解错误吗?
注意:参数函数说第一个参数是一个通过引用传递的数组,但是如果我使用并声明一个数组,如下所示:
Array[] IMG = new Array[256*320];
我收到以下错误:
参数 '1':无法从 'ref System.Array[]' 转换为 'ref object'
谢谢。
解决方案
推荐阅读
- javascript - 使用 AJAX 和按钮提交的 Flask 上传文件不起作用
- css - 用线悬停挥动
- flutter - 如何在 Flutter Tabs 中添加圆点作为指示器?
- java - 将资源文件捆绑到 ecs 集群上使用的 java app jar 文件中
- laravel - 无法得到正确的结果 algolia
- servicenow - 是否可以在 servicenow 付费帐户中创建多个实例?
- azure-devops - Azure Devops api 获取保留的构建
- python-3.x - Python中的持续时间计算器
- reactjs - 比较两个对象列表,一旦匹配,则返回 React JS 中的对象列表
- javascript - 如何在 vuetify 的 v-data-table 中显示带有嵌套 v-data-table 的数组中的 JSON 数组?