在VB里引用了一个VC生成的dll,作用是根据文件名取得文件内的参数,然后把参数列出来(放到listbox控件内).
现在问题是,listbox里显示出来的比正常的参数字符串多了几个不知道哪里来的字符。
比如,某个文件file1的参数有"dwmc"、"ckzh"、"fh"、"jz",我单步跟踪在watch窗口里看到strParamsArray()数组是正常显示的;但是程序里strParamsArray(i)却成了"dwmcr"、"ckzhr"、"fhxjn"、"jzxjn",在listbox里显示也是"dwmcr"、"ckzhr"、"fhxjn"、"jzxjn".代码如下:
private Sub Command1_Click()
Dim i As Long
Dim strParamsArray() As String
Dim objEngine AS New Engine '这个是引用的dll
lstParams.clear
fileName=Text1.Text
'getParamsArray函数的作用是根据文件名取得文件内的参数
strParasArray = objEngine.getParamsArray(App.path & fileName)
For i = LBound(strParasArray) To UBound(strParasArray)
lstParams.AddItem strParamsArray(i)
Next i
End Sub这是什么原因造成的呢??该怎么解决??
现在问题是,listbox里显示出来的比正常的参数字符串多了几个不知道哪里来的字符。
比如,某个文件file1的参数有"dwmc"、"ckzh"、"fh"、"jz",我单步跟踪在watch窗口里看到strParamsArray()数组是正常显示的;但是程序里strParamsArray(i)却成了"dwmcr"、"ckzhr"、"fhxjn"、"jzxjn",在listbox里显示也是"dwmcr"、"ckzhr"、"fhxjn"、"jzxjn".代码如下:
private Sub Command1_Click()
Dim i As Long
Dim strParamsArray() As String
Dim objEngine AS New Engine '这个是引用的dll
lstParams.clear
fileName=Text1.Text
'getParamsArray函数的作用是根据文件名取得文件内的参数
strParasArray = objEngine.getParamsArray(App.path & fileName)
For i = LBound(strParasArray) To UBound(strParasArray)
lstParams.AddItem strParamsArray(i)
Next i
End Sub这是什么原因造成的呢??该怎么解决??
Dim i As Long
Dim strParamsArray() As String
Dim objEngine AS New Engine '这个是引用的dll
lstParams.clear
fileName=Text1.Text
'getParamsArray函数的作用是根据文件名取得文件内的参数
strParamsArray = objEngine.getParamsArray(App.path & fileName)
For i = LBound(strParamsArray) To UBound(strParamsArray)
lstParams.AddItem strParamsArray(i)
Next i
End Sub
Dim i As Long
Dim strParamsArray() As String
Dim objEngine AS New Engine '这个是引用的dll
lstParams.clear
fileName=Text1.Text
'getParamsArray函数的作用是根据文件名取得文件内的参数
strParamsArray = objEngine.getParamsArray(App.path & "\" & fileName)
For i = LBound(strParamsArray) To UBound(strParamsArray)
lstParams.AddItem strParamsArray(i)
Next i
End Sub
我怀疑是VC返回的STRING数组是ANSI字符集的,而VB的string数组是unicode字符集的,不知道是不是这样??dll是用的别人的,没法改了。。能不能在VB这边想办法解决??
当时为了省事,用了个返回数组的dll,没想到却更麻烦了......
看来需要和那个dll的作者交涉一下。。