LabVIEWwilliam hill官网
直播中

caobinhui

12年用户 238经验值
擅长:测量仪表 RF/无线
私信 关注
[问答]

请问labview调用库函数节点传递ref引用时,如何争取配置节点?

本帖最后由 一只耳朵怪 于 2018-6-1 11:17 编辑

最近在研究USB HID协议。hid.dll文件里有一个函数,可以获取到一个GUID,函数声明如下:
VOID HidD_GetHidGuid(OUT LPGUID HidGuid);
其实就是返回一个字符串。
下面是一个C#的小例子
class Program
    {
        [DllImport("hid.dll")]
        private static extern void HidD_GetHidGuid(ref Guid HidGuid);
        static void Main(string[] args)
        {
            //产生一个新的GUID并输出
            Console.WriteLine(System.Guid.NewGuid());
            Guid HIDGUID = Guid.Empty;
            HidD_GetHidGuid(ref HIDGUID);
            Console.WriteLine(HIDGUID); 
            Console.ReadKey(); 
        } 
     } 
返回是:
8603E4CD-18D3-4D4A-8403-F4545C473374
4D1E55B2-F16F-11CF-88CB-001111000030
但是我在labview中用调用库函数节点去试这个函数时,传递ref Guid HidGuid时我直接配置成C字符串指针,可以获取到一个返回的字符串:0xB255 1E4D 6FF1 CF11 88CB
很明显和C#得到的GUID完全不一致。应该是ref参数传递的问题。
但是我试了其他的参数配置,运行后都会导致labview崩溃。
不知道这里传递ref引用该如何配置?


更多回帖

发帖
×
20
完善资料,
赚取积分