Modular Data Acquisition
Distributed Measurement and Control
High-Performance Test
Automated Test System Development Software
Perspectives showcases how NI sees what’s next in the world of test and technology.
You can request repair, RMA, schedule calibration, or get technical support. A valid service agreement may be required.
Provides support for NI data acquisition and signal conditioning devices.
Provides support for Ethernet, GPIB, serial, USB, and other types of instruments.
Provides support for NI GPIB controllers and NI embedded controllers with GPIB ports.
修改时间 04-04-2021 02:53 AM
一开始自己试了很久,也查询了许多论坛的类似帖子,但还是没有弄懂。事情是这样的,我需要调用一个DLL中的一个函数:
void WINAPI EnumDevice(ULONG scanTimes, PCHAR DevNameFilter, NameDevID* pNameDevIDArry, PULONG pNum);
struct NameDevID { UCHAR Name[MAX_PATH]; UCHAR DevID[MAX_PATH]; int Rssi; };
但需要传入的参数是该结构体所构成的数组,于是我根据网上的教程先用簇装上两个字符串和一个int型,再使用数组包住簇,类似如下这样:
在CLFN里的是这样设置的:
因为我发现教程里的“按值传递”会导致崩溃,所以使用了数组数据指针,但使用这个方法也会报错(error code:1097),而且无论如何也得不到该参数经DLL处理之后传出的值;而其他的参数能得到返回值。
我查了挺多类似帖子,感觉想解决的问题跟我都不太一样。
如:类似帖子1 类似帖子2
---------------------------------------------------------------------------------------------
环境:LABVIEW2020 32bit in Windows10 64bit PC
如能解决我的疑惑,感激不尽!
已解决! 转到解答。
修改时间 04-04-2021 06:29 PM
象这样复杂的数据结构(array of cluster of multiple items)是很困难的.
我的方法是: 在 LabVIEW 中配置成最方便的,最简单的数据结构, 然后右击 CLFN, 选 Create C File.
用 VC 把这个 C 文件生成一个新的 dll 给 LabVIEW 调用.
用这个 C 文件调用原来的 dll, 把 LabVIEW 中输入的参数转给 dll.
What do you need our team of experts to assist you with?
Thanks!
We'll be in touch soon!