Hallo,
Ich muss einen Strichcode-Scanner in VB.Net ansprechen.
Das Problem, das sich hier auftut, ist, dass die mitgelieferte SDK nur eine (C-) DLL mit den entsprechenden BefehlsSätzen anbietet, und die ist von 2003.
Wenn ich versuche in VB.NET, bspw. über:
Public Declare Function PDX_Remot_Set_Comm Lib "Remot.dll" (ByVal lpCommName As _
String, ByVal BaudRate As Integer, ByVal DataBit As Byte, ByVal StopBit As _
Byte, ByVal Parity As Byte) As Short eine Funktion aus der Remot.DLL direkt anzusprechen ohne den Umweg über VB6, bricht VB mit der Fehlermeldung
"Es wurde versucht, eine Datei mit einem falschen Format zu laden. (Ausnahme" & _
"von HRESULT: 0x8007000B)" ab. Diese Fehlermeldung ist vermutlich darauf zurückzuführen, dass Remot.DLL keine gültige
.NET Assembly ist, sondern ledliglich eine C-DLL.
Meine Strategie, diese "Remot.DLL" dennoch anzusprechen, besteht jetzt darin, diese DLL in das System32 zu kopieren und in VB6 eine öffentliche Klasse PDXREMOTE zu definieren, die diese Funktionen von "REMOT.DLL" extern anspricht, mit RegSvr32 zu registrieren und DANN eben in dem VB.NET Projekt als COM-Verweis einbindet.
Imports PDXREMOTE
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles Button1.Click
Dim pdx As New clsPDX
If pdx.PDXRemot_Set_Com("COM3", 9600, 8, 0, 0) <> 0 Then
MsgBox("It works.")
Else
MsgBox("Fehler")
End If
End Sub
End Class Hier erhalte ich jedoch den Fehler:
Die COM-Klassenfactory für die Komponente mit CLSID _
{A04A4E2D-5036-4DA9-8A5C-8AA9F5C81D07} konnte aufgrund des folgenden Fehlers _
nicht abgerufen werden: 80040154. PDXRemote ist jedoch als COM-Klasse registriert.
Hat jemand vielleicht noch eine weitere Idee, wie ich diese "Remot.dll" in VB.NET ansprechen kann ?
Vielen Dank im Voraus,
Stephan 0 |