用户显示图像的外部函数

External function to user displayed image

所以我有一个外部 C 函数 returns 一个指向数组的指针。我正在尝试弄清楚如何使用最新版本的 LabView(2019,假设我拥有所有工具包)将指针转换为可以显示在屏幕上的东西。

C 函数签名导入良好,专为显示 16 位图像而设计。

STATUS DemoImage(unsigned short** ptr, int64* rows, int64* columns, int64 image_idx)

ptr最终将包含内存位置的指针填充到 16 位图像。 rowscolumns 按预期工作。

将数据类型转换为可以显示的控制器的名称是什么?我也很感激只解决如何显示 8 位图像的答案,因为如果最坏的情况发生,我可以在我自己的库中转换它们。

有一个 vi.lib VI 不在您可以使用的选项板上:GetValueByPointer

详细演练

有关分步说明,请参阅 this NI document

2D arrays are represented as an array of arrays. Since an array is really a pointer, a 2D array is a pointer to an array of pointers, where each pointer points to the individual rows of the array. So in order to dereference a 2D Array, you must first dereference the individual pointers to each row, and then dereference in individual elements in each row. The following snippet shows an example of this:

下载示例

有关示例的下载,请参阅 this one instead 部分 4.d。

Returning values by reference (pass by ref)

  • Function:
    void ReturningValuesByReference_2DArrayOfIntegers (int rows, int cols, int ***newArray);
  • VI:
    Returning Values By Reference 2D Array Of Integers Complete.vi