BOOL SCL_SeekGetAItem(char *IP, char *Name);
入口:无
出口:若返回TRUE,IP中有给回应答的控制器的IP地址,Name中有控制器的助记名;返回FALSE表示没有得到控制器的应答。在VB中我是这样声明的
Public Declare Function SCL_SeekGetAItem Lib "XC.dll" (ByVal IP As String, ByVal Name As String) As Boolean
==
调用
Dim sIP1 As String
Dim sName1 As String
sIP1 = Space(25)  '分别分配25的长度
sName1 = Space(25)
Tempb = SCL_SeekGetAItem(sIP1, sName1)
=========
问题:
msgbox sIP1和msgbox sName1可以正常显示这两个值
但是用aa=sIP1 & sName1后。。aa的值只有sIP1而没有sName1.....
这是什么原因呢

解决方案 »

  1.   

    Name是保留字最好不要当做变量使用
    aa是什么类型的也没说啊
      

  2.   

    sIP1 后面有 vbNull (chr(0)) 表示字符串的结束。aa = Replace(sIP1 & sName1, Chr(0), "")
      

  3.   

    aa是string...去掉空格后也不能显示。单个显示都可以。。用&连接字符串显示就只能显示其中一个。sname1在前的话显示sname1...sip1在前的话显示sip1..不能一起显示
      

  4.   

    Dim sIP1 As String * 25, sName1 As String * 25
    Dim aa As String, a As String, s As String, i As Long, Temp As String
    On Error Resume NextsIP1 = "!xcvbxcvbxcvbxcvb              "
    For i = 1 To Len(sIP1)
        a = Mid$(sIP1, i, 1)
        If Len(Trim(a)) <> 0 Then s = s & a
    Next
    Temp = s
    s = ""
    sName1 = "!xcvbncvbmnfbnmbnmbnm        "
    For i = 1 To Len(sName1)
        a = Mid$(sName1, i, 1)
        If Len(Trim(a)) <> 0 Then s = s & a
    Next
    Temp = Temp & s'aa = sIP1 & sName1  'Left$(sIP1, InStr(sIP1, chr(0))-1) & Left$(sName1, InStr(sName1, chr(0))-1)
    Debug.Print Temp