可以在 LabVIEW DLL 中使用 'wchar_t' 字符串指针吗?
Possibility to use 'wchar_t' string pointers in LabVIEW DLLs?
我正在计划一个仅 Windows 的测量系统,它将用 C++ 编写。这个系统应该提供一个基于 DLL 的插件系统,这样同事们就可以通过自己编写特定的 DLL 来为外部硬件创建某种设备驱动程序。
这里有很多有 NI LabVIEW 经验的聪明人,他们中的一些人很可能会使用该开发系统创建这些 DLL。
根据我自己(不是最新的)使用 LV 的经验,我记得当时不可能创建或使用使用 wchar_t
编码字符串指针参数的 DLL。
因为我的测量系统的 API 只会将字符串参数公开为 wchar_t
,这对 LabVIEW 人员来说是个问题还是我必须提供额外的函数来调用字符串参数LV DLL(我尽量避免)?
LabVIEW 没有很好地支持 Unicode(或 wchar_t),在程序中使用它们可能会很麻烦。我想你有几个选择:
- 重新考虑 wchar_t 的使用,对我来说,令人惊讶的是,对于测量设备,您必须使用 wchar_t。当然这完全取决于你的系统。
- 为您编写一个包装器 dll,以便与 LabVIEW 或任何不支持 wchar_t 的语言进行通信。
- 在 Labview 中编写一个转换函数,将裸 wchar_t 数组检索为整数数组,并将它们转换为 ASCII 代码。在调用您的 dll 后使用此函数转到 ASCII 代码。
您提前考虑并尝试创建 LabVIEW 可以与之通信的 DLL 是件好事。我认为您只需要更进一步,与贵公司的 Labview Guy 交谈,看看他们更喜欢哪种解决方案,这会使以后的集成变得更加容易。
我正在计划一个仅 Windows 的测量系统,它将用 C++ 编写。这个系统应该提供一个基于 DLL 的插件系统,这样同事们就可以通过自己编写特定的 DLL 来为外部硬件创建某种设备驱动程序。
这里有很多有 NI LabVIEW 经验的聪明人,他们中的一些人很可能会使用该开发系统创建这些 DLL。
根据我自己(不是最新的)使用 LV 的经验,我记得当时不可能创建或使用使用 wchar_t
编码字符串指针参数的 DLL。
因为我的测量系统的 API 只会将字符串参数公开为 wchar_t
,这对 LabVIEW 人员来说是个问题还是我必须提供额外的函数来调用字符串参数LV DLL(我尽量避免)?
LabVIEW 没有很好地支持 Unicode(或 wchar_t),在程序中使用它们可能会很麻烦。我想你有几个选择:
- 重新考虑 wchar_t 的使用,对我来说,令人惊讶的是,对于测量设备,您必须使用 wchar_t。当然这完全取决于你的系统。
- 为您编写一个包装器 dll,以便与 LabVIEW 或任何不支持 wchar_t 的语言进行通信。
- 在 Labview 中编写一个转换函数,将裸 wchar_t 数组检索为整数数组,并将它们转换为 ASCII 代码。在调用您的 dll 后使用此函数转到 ASCII 代码。
您提前考虑并尝试创建 LabVIEW 可以与之通信的 DLL 是件好事。我认为您只需要更进一步,与贵公司的 Labview Guy 交谈,看看他们更喜欢哪种解决方案,这会使以后的集成变得更加容易。