.NET中,string不赋初值无法使用如何处理
vb.net吧
全部回复
仅看楼主
level 1
蓝梦妖蝶 楼主
用的VISA32.DLL的调用。平时不给string赋初值都没事。就是这个dll里没有初值就显示不全
Declare Function viStatusDesc Lib "VISA32.DLL" Alias "#142" (ByVal vi As Integer, ByVal status As Integer, ByVal desc As String) As Integer
Dim VisaErr As String
status = viStatusDesc(vi, status, VisaErr)
如果不给 VisaErr 赋初值。结果就为空。
如果给 VisaErr 赋初值为“0”的话,就会显示一个字符。
只有当VisaErr 初值位数大于要显示的位数时,才能显示全。
像是这样。
Dim VisaErr As String = "00000000000000000000000000000000000000000000000000000000000000000"
如果如果比这个短没事,正常显示。但是比这个长的话,就显示不全了。
应该如何处理?
2018年11月01日 07点11分 1
level 11
你可以试试改下参数类型,把string改为stringbuilder
2018年11月01日 18点11分 2
谢谢大神。我用Dim instrDesc = New StringBuilder()可以用。但是数据不太对。返回四个地址都一样。这是怎么回事?
2018年11月02日 02点11分
已解决,是另外的函数没改格式。已经好了。也知道原因了。谢谢
2018年11月02日 07点11分
level 1
蓝梦妖蝶 楼主
String声明之后在内存中大小是不可修改的,而StringBuilder可以自由扩展大小(String分配在栈区,StringBuilder分配在堆区)
2018年11月02日 07点11分 3
level 2
你好,我最近也在使用visa32有些问题想请教您,请加我QQ:380827834 感谢!
2018年11月04日 11点11分 4
1