Программирование RFID с VB.NET - PullRequest
1 голос
/ 01 декабря 2011

Я пытаюсь использовать RFID бесконтактную смарт-карту (серии T8 / D8) для моего финального проекта.Но у меня проблема с доступом к файлу dcrf32.dll в моей форме.

В пакет RFID входит 3 вещи (следовательно: 12 смарт-карт, порт USB и компакт-диск с драйвером)

На компакт-диске с драйверами есть много примеров проектов на некоторых языках программирования, кроме VB.NET, я попробовал их один за другим, и это работает.

Есть папка с именем "win32-dll", этоесть 3 файла внутри (dcrf32.dll, dcrf32.h, dcrf32.lib).Я должен скопировать их все в каждую программу-пример, которую я хочу использовать.image

У них также есть пример в VB.6, когда я пытаюсь запустить его, никаких проблем вообще нет.Оно работает.(я также помещаю эти 3 файла dcrf в папку %windows%\System32).

Но, когда я пытаюсь построить свой собственный проект с Visual Studio 2010 и используя язык программирования VB.NET, у меня возникает проблема с вызовомФайл dcrf32.dll.

Я перенес исходный код VB6 в VB.NET, ошибка при задании параметров для функции dc_init.Кто-нибудь может мне помочь?Где моя вина?

Вот ссылки, которые важны для решения моих проблем: Здесь

Мне просто нужна помощь с моей первой кнопкой, а у вас нетчтобы помочь мне с другой кнопкой, как в примере программы VB 6.

Я просто хочу знать, как подключить файлы dcrf32, и почему в VB.NET он имеет ошибку, но в VB 6 он работает правильно.

Интересно.

1 Ответ

0 голосов
/ 01 декабря 2011

Проблема, с которой вы сталкиваетесь, связана с вашими объявлениями функций и тем, что в VB.Net есть изменения в размере целых и длинных чисел и т. Д.Посмотрите на это Ссылка и этот проект кода Статья об использовании PInvoke.

, т. Е. Целое число в VB6 является коротким в VB.Net, а длинное в VB6 являетсяЦелое число в VB.Net.% В вашем объявлении является целым числом VB6 и станет коротким.

Declare Auto Function dc_init Lib "dcrf32.dll" (ByVal port as Short, ByVal baud As Integer) As Integer
Declare Auto Function dc_exit Lib "dcrf32.dll" (ByVal icdev As Integer) As Short
Declare Auto Function dc_request Lib "dcrf32.dll" (ByVal icdev As Integer, ByVal mode as Short, tagtype As Integer) As Short
Declare Auto Function dc_anticoll Lib "dcrf32.dll" (ByVal icdev As Integer, ByVal bcnt as Short, snr As Integer) As Short

...
...