以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  调用高拍仪DLL求教  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=118055)

--  作者:xietan417
--  发布时间:2018/4/24 11:07:00
--  调用高拍仪DLL求教
把高拍仪dll(AxInterop.eloamComLib.dll,Interop.eloamComLib.dll)复制到ft的目录下以后,在全局代码里如何定义引用?

下面是VB.NET的例子:

Option Explicit On
Public Class elaomComForm
    Dim ImgPath As String


    Dim WithEvents eloamGlobalEvent As eloamComLib.EloamGlobal

    Dim EloamGlobal As eloamComLib.EloamGlobal
    Dim DevArrary() As eloamComLib.EloamDevice
    Dim Device As eloamComLib.EloamDevice
    Dim Video As eloamComLib.EloamVideo

    Private Sub elaomComForm_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
        Dim bInit As Boolean
        Dim devCount As Integer
        Dim Dev As eloamComLib.EloamDevice
        Dim i As Integer
        Dim DevName As String

        EloamGlobal = New eloamComLib.EloamGlobal
        eloamGlobalEvent = New eloamComLib.EloamGlobal

        bInit = EloamGlobal.InitDevs()

        If bInit = True Then
            devCount = EloamGlobal.GetDevCount(1)
            If devCount > 0 Then
                ReDim DevArrary(0 To devCount - 1)
                For i = 0 To devCount - 1
                    Dev = EloamGlobal.CreateDevice(1, i)
                    DevArrary(i) = Dev

                    DevName = Dev.GetFriendlyName()
                    ComboBox_dev.Items.Add(DevName)
                Next (i)
                ComboBox_dev.SelectedIndex = 0
            Else
                Button_preview.Enabled = False
                Button_start_idcard.Enabled = False
                Button_capture.Enabled = False
                MsgBox("没有找到设备")
            End If
        Else
            MsgBox("初始化设备失败")
            Exit Sub
        End If
    End Sub

[此贴子已经被作者于2018/4/24 11:13:16编辑过]

--  作者:有点甜
--  发布时间:2018/4/24 11:54:00
--  

1、引用dll

 

http://www.foxtable.com/webhelp/scr/1936.htm

 

2、写代码

 

Dim EloamGlobal As eloamComLib.EloamGlobal
Dim DevArrary() As eloamComLib.EloamDevice
Dim Device As eloamComLib.EloamDevice
Dim Video As eloamComLib.EloamVideo
Dim bInit As Boolean
Dim devCount As Integer
Dim Dev As eloamComLib.EloamDevice
Dim i As Integer
Dim DevName As String


EloamGlobal = New eloamComLib.EloamGlobal
eloamGlobalEvent = New eloamComLib.EloamGlobal

bInit = EloamGlobal.InitDevs()


If bInit = True Then
    msgbox("成功")
Else
    MsgBox("初始化设备失败")   
End If


--  作者:xietan417
--  发布时间:2018/4/25 0:40:00
--  
全局代码不是用Public的吗?我试了一下还是没办法连接高拍仪!

未能加载文件或程序集“Interop.eloamComLib, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null”或它的某一个依赖项。生成此程序集的运行时比当前加载的运行时新,无法加载此程序集。

--  作者:有点甜
--  发布时间:2018/4/25 9:14:00
--  

1、在你的电脑上,要安装和注册高拍仪的驱动;然后连上高拍仪;

 

2、然后引用dll,写2楼代码。


--  作者:xietan417
--  发布时间:2018/4/25 9:20:00
--  

Dim EloamGlobal As eloamComLib.EloamGlobal
Dim DevArrary() As eloamComLib.EloamDevice
Dim Device As eloamComLib.EloamDevice
Dim Video As eloamComLib.EloamVideo
Dim bInit As Boolean
Dim devCount As Integer
Dim Dev As eloamComLib.EloamDevice
Dim i As Integer
Dim DevName As String


EloamGlobal = New eloamComLib.EloamGlobal
eloamGlobalEvent = New eloamComLib.EloamGlobal

bInit = EloamGlobal.InitDevs()


这行代码肯定会报错啊!

--  作者:有点甜
--  发布时间:2018/4/25 9:40:00
--  

1、你的dll必须是.net framework2.0或者3.5版本的dll,如果不是,请用vs打开实例,重新生成;

 

2、按照4楼和第一点去做,不可能报错。


--  作者:xietan417
--  发布时间:2018/4/25 10:44:00
--  
.assembly Interop.eloamComLib
{
  .ver 1:0:0:0
}

IL DASM 看了一下!显示这个是什么版本的?

--  作者:有点甜
--  发布时间:2018/4/25 10:52:00
--  

下载一个 vs2012

 

打开厂家给你的实例,把.net framework版本设置成 2.0 然后重新生成。去debug文件夹下把dll文件拷贝出来。

 

https://jingyan.baidu.com/article/546ae1850129af1148f28c5d.html

 


--  作者:xietan417
--  发布时间:2018/4/25 12:02:00
--  
vs2017可以吗?用VB.NET的实例来重新生成?
--  作者:有点甜
--  发布时间:2018/4/25 12:10:00
--  
以下是引用xietan417在2018/4/25 12:02:00的发言:
vs2017可以吗?用VB.NET的实例来重新生成?

 

可以的,能打开实例即可。打开后,设置好.net framework,重新编译,编译成功后,把debug下的dll文件拷贝出来。