Foxtable(狐表)用户栏目专家坐堂 → DLL文件加载的问题


  共有3194人关注过本帖平板打印复制链接

主题:DLL文件加载的问题

帅哥哟,离线,有人找我吗?
supwork
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:688 积分:4903 威望:0 精华:0 注册:2013/10/27 17:14:00
DLL文件加载的问题  发帖心情 Post By:2014/8/17 19:47:00 [只看该作者]

一个DLL文件在VB6,VC, Delphi中均能正常调用,怎么在FT中就不能加载了?

外部引用后

在进行窗口设计时,要调用这个DLL文件时,显示DLL文件错误不能加载。之后关闭,再次打开项目后。

窗口不能进入了设计 了“未将对象引用设置到对象的实例”

只能 退出了,继续则进入 什么模式窗口了,只能强行退出了。

  

 

现在要完成的代码设置为:

 

Private Sub UpdatePortNameList()
  Dim str1 As String
  Dim Buf As String * GCAL_MAX_LEN_OF_PORTNAME_STRING
  Dim lSize As Long
 
  str1 = ComboPortName.Text
  ComboPortName.Clear
  Buf = Space$(GCAL_MAX_LEN_OF_PORTNAME_STRING)
  If GCal_GetFirstPortName(Buf, GCAL_MAX_LEN_OF_PORTNAME_STRING) <> 0 Then
    Do
      lSize = InStr(Buf, vbNullChar)
      If lSize > 0 Then
        ComboPortName.AddItem Left(Buf, lSize)
      End If
      Buf = Space$(GCAL_MAX_LEN_OF_PORTNAME_STRING)
    Loop Until GCal_GetNextPortName(Buf, GCAL_MAX_LEN_OF_PORTNAME_STRING) = 0
  End If
  If "" <> str1 Then
    ComboPortName.Text = str1
  Else
    ComboPortName.ListIndex = 0
  End If
End Sub

Private Sub RestartDevice()
  If 0 <> DeviceID Then
    GCal_CloseDevice (DeviceID)
  End If
  DeviceID = GCal_OpenDevice(ComboPortName.Text, ComboDeviceDescription.Text, Val(ComboBaudRate.Text))
  DeviceChannel = Val(TextChannel.Text)
  If 0 <> DeviceID Then
    GCal_SetChannel DeviceID, DeviceChannel, 1
  End If
End Sub

Private Sub ComboBaudRate_Change()
  RestartDevice
End Sub

Private Sub ComboBaudRate_Click()
  RestartDevice
End Sub

Private Sub ComboDeviceDescription_Change()
  RestartDevice
End Sub

Private Sub ComboDeviceDescription_Click()
  RestartDevice
End Sub

Private Sub ComboPortName_Change()
  RestartDevice
End Sub

Private Sub ComboPortName_Click()
  RestartDevice
End Sub

Private Sub CommandData_Click()
  AddData
End Sub

Private Sub CommandExit_Click()
  Unload Me
End Sub

Private Sub CommandZero_Click()
  If 0 <> DeviceID Then
    GCal_ZeroChannel DeviceID, DeviceChannel
  End If
End Sub

Private Sub Form_Load()
  DeviceID = 0
  DeviceChannel = 0
  GCal_SetCallBackProc AddressOf OnDataProc
  UpdatePortNameList
 
  ComboDeviceDescription.Clear
  ComboDeviceDescription.AddItem "Auto1"
  ComboDeviceDescription.AddItem "Auto1A"
  ComboDeviceDescription.AddItem "Auto64A"
  ComboDeviceDescription.AddItem "Ack64"
  ComboDeviceDescription.AddItem "Ack64A"
 
  ComboBaudRate.Clear
  ComboBaudRate.AddItem "4800"
  ComboBaudRate.AddItem "9600"
 
  RestartDevice
End Sub

Private Sub Form_Unload(Cancel As Integer)
  GCal_CloseAllDevices
End Sub

Private Sub ListData_Click()

End Sub

Private Sub TextChannel_Change()
  Dim ch1 As Long
  ch1 = Val(TextChannel.Text)
  If ch1 <> DeviceChannel Then
    GCal_SetChannel DeviceID, DeviceChannel, 0
    DeviceChannel = ch1
    GCal_SetChannel DeviceID, DeviceChannel, 1
  End If
End Sub

 

 

 

Global DeviceID As Long
Global DeviceChannel As Long

Public Sub AddData()
  With FormMain
    If "" <> .LabelData.Caption Then
      .ListData.AddItem .LabelData.Caption
      .ListData.ListIndex = .ListData.ListCount - 1
    End If
  End With
End Sub

Public Sub OnDataProc(ByVal ID As Long, ByVal Channel As Long, ByVal Value As Long, ByVal KeyPressed As Byte)
  Dim f As Double
  Dim n1 As Long
  Dim fmt As String
 
  If (ID = DeviceID) And (Channel = DeviceChannel) Then
    f = Val(FormMain.TextMultiplier.Text)
    If 0 = f Then
      f = 1
    End If
    f = f * Value / 100
    n1 = Val(FormMain.TextDecimalDigits.Text)
    fmt = IIf(0 = n1, "0", "0." & String(n1, "0"))
    FormMain.LabelData.Caption = Format$(f, fmt)
    If 0 <> KeyPressed Then
      AddData
    End If
  End If
End Sub

 

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:gcalcommonsharedevice.rar

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:在线检测.foxdb


图片点击可在新窗口打开查看此主题相关图片如下:在线检测.png
图片点击可在新窗口打开查看
[此贴子已经被作者于2014-8-17 21:49:19编辑过]

 回到顶部
总数 12 1 2 下一页