質問

今、私はクラスとcomrd800.dllドライバーのインストール方法について少し知っています(コマンドプロンプト:regsvr32を使用)。

Visual Studio 2010をテキストエディターとして、VB.NETをプログラミング言語として使用しています。

しかし、ここに私がいます、別の問題は再び私を追いかけることです。私のせいはどこにあるのかわかりません。

まず、このRF IDを使用すると、RF IDタグからHEXキーを書いて読む前に呼び出される機能があると説明したいと思います。書くか読む前に使用しなければならない機能は次のとおりです。

dc_init(100,115200) 'to open the port, this should be initialized first
dc_beep(icdev,10) 'just to make the device beeping
dc_load_key_hex(icdev,0,0,"ffffffffffff") 'initializing the device key
dc_request(icdev,0,tagtype) 'to get the Card Tag Type
dc_anticoll(icdev,0,snr) 'to get the card's serial number
dc_select(icdev,snr,sizeA) 'to get the size of the card's memory to pc (it always "8")
dc_authentication(icdev,0,0) 'to pass the authentication
dc_write_hex(icdev,1,TestStr) 'writing to the RF ID tag with string TestStr
dc_read_hex(icdev,1,TestStr2) 'Nah, here is where the error occured. 

TestStr2はリフェレンス変数です。つまり、HEXの値はそこに保存されます。 (RF IDタグからヘックス値を取得するには、testStr2を印刷する必要があります)

関数が「0」を返すとき、それは「正しい」または動作することを意味します。しかし、関数が<> 0を返すとき、それは「何かが間違っている」を意味します。

これまで、それらはすべて「0」を返します。 (エラーが存在するDC_READ_HEXを除く)。

説明:これらの機能はドライバー(DCRF32.DLLファイル)から来ました。私のプロジェクトでそれらを使用するには、VB.NETモジュールファイルでそれらを宣言する必要があります。 (私のプロジェクトでは、「koneksirfid.vb」ファイルです)。

これまでのところ、関数に問題はありませんが、「読み取り」部分(DC_READ_HEX関数)に到達すると、エラーが発生します。 「datalexecutionEngineerror」と言った。

画像

ご覧のとおり、値を読んだときに問題が発生しました。あなたが私の問題に参加し、それらを解決する方法を見つけたいなら、ここに私のプロジェクトがあります。以前に、この問題を解決しようとした人に感謝します。とても感謝しています。

私のプロジェクト全体 (そのドライバーとRFIDマニュアル.pdfを含む)

もう1つ、「ドライバー(dcrf32.dll、dcrf32.lib、dcrf32.h)ファイルを「binまたはwindows/system32」に入れなければなりません。これが必要かどうかはわかりません。ただし、VB.NETモジュールが適切に機能しなかったときに試してみてください。

役に立ちましたか?

解決

あなたのVB6定義はこれです:

Declare Function dc_read_hex Lib "dcrf32.dll" (ByVal icdev As Long, ByVal adr%, ByVal sdata$) As Integer

現在、これは定義を持っています。ADRのデータ型または返品値を調整していません。

Declare Function dc_read_hex Lib "dcrf32.dll" (ByVal icdev As Integer, ByVal adr%, ByRef sdata$) As Integer

次のように定義してみてください。

Declare Function dc_read_hex Lib "dcrf32.dll" (ByVal icdev As Integer, ByVal adr as Short, ByRef sdata as String) As Short

編集:

これからこれを試してみてください MSDN おそらく追加する必要があるページ Imports System.RunTime.InteropServices.

Declare Function dc_read_hex Lib "dcrf32.dll" (ByVal icdev As Integer, ByVal adr as Short, <MarshalAs(UnmanagedType.LPTStr)> sdata as String) As Short
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top