以下是VB调DLL 有人帮我转成C#也行 多谢了 !!! '声明接口 Private Declare Function LoadIdcardLibrary Lib "idcarddll.dll" () As Long Private Declare Sub FreeIdcardLibrary Lib "idcarddll.dll" () Private Declare Function ScanImageOther Lib "idcarddll.dll" (ByVal pchFilePath As String, ByRef sp As scan_Para) As Long '身份证接口 Private Declare Function RecogIdcardRe Lib "idcarddll.dll" (ByVal imgfile_name As String, ByRef lpCard As IDCARD_ALL, ByVal bSaveResultFile As Integer, ByVal nHandPrint As Long, ByVal nContent As Byte, ByVal HeadImgFName As String, ByVal nButtonDown As Integer, ByVal bIsNeedRevers As Integer) As Long Dim MyCard As IDCARD_ALL Dim sp As scan_Para Private Sub CmdRecog_Click() 'Static MyCard As ST_IDCARD Dim index, ii As Long For ii = 0 To 5 Text1(ii).Text = "" Next ii '加载识别核心 Dim load As Long load = LoadIdcardLibrary() If load = 0 Then 'MsgBox ("Finish loading Library!") TxtResult.Text = "Finish loading Library!" Else 'MsgBox ("Library loaded error!") TxtResult.Text = "Library loaded error!" Exit Sub End If
FrmMain.Refresh
dll 是如下方式导入到C#中: 这是从网上找到的 但还是不知道怎么加载调用呀 ! 调用报错 汗 //接口函数 [DllImport(".\\idcarddll.dll")] public static extern int LoadIdcardLibrary(); [DllImport(".\\idcardll.dll")] public static extern void FreeIdcardLibrary(); [DllImport("idcarddll.dll")] public static extern int RecogIdcardExALL(string imgfile_name, ref IDCARD_ALL card, bool bSaveResultFile, int nHandPrint, int nContent, string HeadImgFName, short nButtonType);
[DllImport("idcarddll.dll")] public static extern int RecogDPALL(string imgfile_name, ref IDCARD_ALL card,bool bSaveResultFile, int nContent,string HeadImgFName); [DllImport("idcarddll.dll")] public static extern int RecogNewIdcardALL (string imgfile_name, ref IDCARD_ALL card, bool bSaveResultFile, int nContent, string HeadImgFName); [DllImport("idcarddll.dll")] public static extern int RecogPassPortALL(string imgfile_name, ref IDCARD_ALL card, bool bSaveResultFile, int nContent, string HeadImgFName); [DllImport("idcarddll.dll")] public static extern int ScanImageEx(string imgfile_name, short nButtonType);
以前调用过短信猫的DLL 也没见这么复杂 看来要好好研究研究了。。
'声明接口
Private Declare Function LoadIdcardLibrary Lib "idcarddll.dll" () As Long
Private Declare Sub FreeIdcardLibrary Lib "idcarddll.dll" ()
Private Declare Function ScanImageOther Lib "idcarddll.dll" (ByVal pchFilePath As String, ByRef sp As scan_Para) As Long
'身份证接口
Private Declare Function RecogIdcardRe Lib "idcarddll.dll" (ByVal imgfile_name As String, ByRef lpCard As IDCARD_ALL, ByVal bSaveResultFile As Integer, ByVal nHandPrint As Long, ByVal nContent As Byte, ByVal HeadImgFName As String, ByVal nButtonDown As Integer, ByVal bIsNeedRevers As Integer) As Long
Dim MyCard As IDCARD_ALL
Dim sp As scan_Para
Private Sub CmdRecog_Click()
'Static MyCard As ST_IDCARD
Dim index, ii As Long
For ii = 0 To 5
Text1(ii).Text = ""
Next ii
'加载识别核心
Dim load As Long
load = LoadIdcardLibrary()
If load = 0 Then
'MsgBox ("Finish loading Library!")
TxtResult.Text = "Finish loading Library!"
Else
'MsgBox ("Library loaded error!")
TxtResult.Text = "Library loaded error!"
Exit Sub
End If
FrmMain.Refresh
[DllImport(".\\idcarddll.dll")]
public static extern int LoadIdcardLibrary(); [DllImport(".\\idcardll.dll")]
public static extern void FreeIdcardLibrary(); [DllImport("idcarddll.dll")]
public static extern int RecogIdcardExALL(string imgfile_name, ref IDCARD_ALL card, bool bSaveResultFile, int nHandPrint, int nContent, string HeadImgFName, short nButtonType);
[DllImport("idcarddll.dll")]
public static extern int RecogDPALL(string imgfile_name, ref IDCARD_ALL card,bool bSaveResultFile, int nContent,string HeadImgFName); [DllImport("idcarddll.dll")]
public static extern int RecogNewIdcardALL (string imgfile_name, ref IDCARD_ALL card, bool bSaveResultFile, int nContent, string HeadImgFName); [DllImport("idcarddll.dll")]
public static extern int RecogPassPortALL(string imgfile_name, ref IDCARD_ALL card, bool bSaveResultFile, int nContent, string HeadImgFName); [DllImport("idcarddll.dll")]
public static extern int ScanImageEx(string imgfile_name, short nButtonType);
怎么提供ocx,应该都是dll才对!