当解析头文件(.h)时,为什么LabVIEW Import Shared Library(.dll)冻结了?



主要软件:
主要软件版本: 1.0
主要软件修正版本: N/A
次要软件: LabVIEW Development Systems>>LabVIEW Professional Development System

问题:

我想在LabVIEW中使用一个.dll 文件及其相关的.h文件创建一个自定义库,当使用Import Shared Library Wizard ,在LabVIEW的工具菜单栏下,当解析头文件的时候,整个LabVIEW程序冻结。(对话框提示可能需要等待几分钟),该向导没有任何反应,直到再次点击了窗口,LabVIEW给出NOT RESPONDING 的信息。通过或者终止冻结现象的唯一方法是关闭整个LabVIEW程序。我可以使用调用库节点函数访问该.dll 中的所有函数,所以我确定该.dll 正常。同时我在IDE中将该头文件正确打开,看出格式是正确的。



解答:

.dll文件中使用了ASCII字符是为什么 Import Shared Library wizard 解析头文件时中止的主要原因。这个问题的一个原因是使用的字符超出了标准7-bit ASCII范围。这些字符是ASCII代码之外的范围,包括字符:128-255 。解析工具不能识别扩展ASCII码,因此导致了.h 文件损坏。

 为了检验.h文件是否包含不识别的字符,在十六进制编辑器中打开该文件。十六进制编辑器是一个程序,可以将任何文件转换成十六进制代码。另外它会将十六进制对表示成ASCII码。这样就会把标准文本编辑器不识别的字符显示出来。网上有许多免费的十六进制编辑器。有两种可选方法可以去除不识别的字符。

方法 #1: 复制 & 粘贴


方法 #2: 编辑十六进制文件

相关链接: AE KB 4EE33MG5: Shared Library Import Wizard Hangs When Importing a DLL (Chinese)
ASCII Code - The extended ASCII table

附件:





报告日期: 10/24/2011
最近更新: 01/28/2012
文档编号: 5QNBDDX0