none
vb.net 2005(使用vb 6.0 的控件问题) RRS feed

  • 问题

  • 最近使用vb 6.0(bq80xrw1)的控件,出现了一些问题,代码如下:
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            Dim N As Integer
            Dim BodName As String
            Dim Bodlen As Integer
            BodName = ""
            Bq80xRW1.GetFreeBoards(16, N, BodName)
            Label1.Text = BodName
            If N >= 1 Then
                Bodlen = InStr(BodName, ",", CompareMethod.Text)
                BodName = Strings.Left(BodName, Bodlen - 1)
                TextBox1.Text = BodName
                Bq80xRW1.OpenDevice(BodName)(此处提示类型不匹配,bodname 是string 类型,但不知为何。我使用vb 6.0调试没有问题,是vb.net 与vb 6.0 数据类型的问题吗?需要怎样改善?)
            End If
        End Sub

     

    opendevice 函数

    :Public Overridable Function OpenDevice(ByVal devName As String) As Short

     

    bodname 从vb.net 与vb 60返回的参数是一样的:

    vb6.0 \\?\usb#vid_0451&pid_0035#5&7e217d5&0&2#{8eb0fa22-a67c-4a27-9913-df9ab307d886},
    vb.net  \\?\usb#vid_0451&pid_0035#5&7e217d5&0&2#{8eb0fa22-a67c-4a27-9913-df9ab307d886},

     

    不知道还有什么其他问题:

    2008年10月29日 8:19

答案

全部回复

  • 我下载了这个控件,在VB6下面跑第一句就报类型不匹配

    Code Snippet
    Bq80xRW1.GetFreeBoards(16, N, BodName)

     

     

    应该是控件内部检查什么条件不成功而报错,不知道具体原因,我觉得没法解决

     

    2008年10月30日 1:02
    版主
  •     feiyun.这个需要硬件支持,否则会报错。他是通过USB通讯的。getfreeboard 函数的意思是找出没有使用的通讯板。所以你那会报错,我用vb6.0的很正常,他毕竟是大公司,应该不会出什么问题的。你的mail 是多少?我把vb.net截图发给你 ,这样比较容易看出问题。  

    2008年10月30日 1:15
  • 我知道,我的意思就是说这是控件内部报的错,我们不知道原因,你可以把这个问题反映到那个公司去,也许有解决方法

    2008年10月30日 1:24
    版主
  •    如果解决不了就算了,他只会建议我们用VB6.0.

    • 已标记为答案 pardy 2009年7月9日 5:32
    2008年10月30日 1:31