Программирование RFID с помощью VB.NET | Часть II

Этот пост связан с постом перед этим: Программирование RFID с помощью VB.NET

Спасибо за ответ, Марк, я уже изменил их на целые числа (потому что они не совпадают, когда порт такой длинный, а dc_init как целое число). Я решил изменить все на целое число. И это работает.

Теперь у меня другая проблема. После того, как dc_init работает (после того, как я изменил эти типы данных на целочисленные), у меня возникла проблема при вызове функции dc_cards.

Для получения дополнительной информации о функции dc_init я также прилагаю файл руководства (из стартового пакета RFID)

Вот что вам нужно увидеть: Загрузить

Извините, я не могу более подробно объяснить эту проблему, потому что я не могу публиковать изображения и только 2 ссылки, которые я могу включить. Может быть, это поможет, загрузив эти вещи выше. Он включает в себя мой проект в VB.NET и пример программы VB6 (она работает и вообще не глючит), файл dcrf32.dll (скопируйте их в system32 драйвер для RFID).

Я делаю это в VB.NET в соответствии с образцом программы VB6 (из стартового пакета), но это довольно сложно после миграции VB6 на VB.NET.

я действительно странный с этим кодом, я никогда не изучаю его, и я не знаю, что делать. Может быть, Марк мог бы помочь мне в моей ситуации. Большое спасибо.


person Arvid Theodorus    schedule 02.12.2011    source источник
comment
В чем проблема с функцией dc_card?   -  person Mark Hall    schedule 02.12.2011
comment
@MarkHall, когда я работаю с st = dc_card(icdev, mode, snr), переменная st должна возвращать значение 0 или 1, но когда я печатаю ее с помощью messagebox.show(st), она имеет значение, равное переменной snr. Я понятия не имею об этом проекте. Потому что в моем университете у меня нет партнера по обсуждению этих вещей с RFID. Спасибо Марк, так как вы помогаете мне.   -  person Arvid Theodorus    schedule 02.12.2011


Ответы (1)


Объявление для функции dc_card должно быть:

Declare Auto Function dc_card Lib "dcrf32.dll" (ByVal icdev As Integer, ByVal mode as Short, snr As Integer) As Short

Вы должны передать icdev, который вы получили из функции dc_init, и режим 0, ваша информация будет в переменной snr, а статус будет в st.

st = dc_card(ByVal icdev, cardmode, snr)

в ваших декларациях:

Dim snr, tagtype as Integer
Dim cardmode as Short

...
person Mark Hall    schedule 02.12.2011
comment
Извините, но в VB.NET я не могу сделать следующее: st = dc_card(ByVal icdev, cardmode, snr) не так, как в VB6, я могу написать ByVal при вызове функции dc_card, но в VB.NET это не разрешено. Теперь я перехожу к другому методу, чтобы закончить этот проект. В любом случае спасибо за ваш ответ, Марк :) - person Arvid Theodorus; 02.12.2011