System.EntryPointNotFoundException: «Невозможно найти точку входа с именем «Inventory_G2» в DLL «UHFReader288.dll».»C#

Место общения программистов C#
Ответить
Anonymous
 System.EntryPointNotFoundException: «Невозможно найти точку входа с именем «Inventory_G2» в DLL «UHFReader288.dll».»

Сообщение Anonymous »

Я постоянно получаю эту ошибку при запуске кода проекта на C#. Я использую SEUIC RFID UF3-B по протоколу TCP. При запуске моего кода я всегда получаю такую ​​ошибку:
System.EntryPointNotFoundException: «Невозможно найти точку входа с именем «Inventory_G2» в DLL «UHFReader288.dll». '
Как вы думаете, в чем причина этого? Я спросил об этом ChatGPT и попытался решить эту проблему, обновив версию .NET Framework до 3.5, добавив ссылку на проект и добавив файл UHFReader288.dll в каталог .../x86/Release/, но ошибка все еще существует.
Можете ли вы мне помочь?

Код: Выделить всё

using System;
using System.Runtime.InteropServices;

namespace UHFReaderModule
{
public class TagReader
{
private byte comAddr;
private byte qValue;
private byte session;
private byte maskMem;
private byte[] maskAdr;
private byte maskLen;
private byte[] maskData;
private byte maskFlag;
private byte adrTID;
private byte lenTID;
private byte tidFlag;
private byte target;
private byte inAnt;
private byte scanTime;
private byte fastFlag;

public TagReader(byte comAddr)
{
this.comAddr = comAddr;
this.qValue = 0; // Atur QValue sesuai kebutuhan
this.session = 0x00; // Gunakan S0 sebagai nilai sesi
this.maskMem = 0x01; // Gunakan EPC memory
this.maskAdr = new byte[2] { 0x00, 0x00 }; // Alamat masker
this.maskLen = 0; // Tidak ada masker
this.maskData = new byte[0]; // Tidak ada data masker
this.maskFlag = 0; // Nonaktifkan masker
this.adrTID = 0; // Alamat TID
this.lenTID = 0; // Panjang TID
this.tidFlag = 0; // Inventarisasi EPC
this.target = 0x00; // Target A
this.inAnt = 0x80; // Antena 1
this.scanTime = 0; // Tidak ada batas waktu
this.fastFlag = 0; // Nonaktifkan fast inventory
}

public bool ReadTag(out int cardNum) // `out` parameter untuk cardNum
{
byte[] pEPCList = new byte[1024]; // Buffer untuk menyimpan data EPC
byte ant = 0;
int totalLength = 0;

// Inisialisasi cardNum sebelum pemanggilan fungsi
cardNum = 0;

// Panggil metode Inventory_G2
int result = Inventory_G2(ref comAddr, qValue, session, maskMem, maskAdr, maskLen, maskData, maskFlag,
adrTID, lenTID, tidFlag, target, inAnt, scanTime, fastFlag, pEPCList, ref ant, ref totalLength, ref cardNum);

if (result == 0) // Sukses
{
return cardNum > 0; // Kembalikan true jika ada tag yang terbaca
}
else
{
cardNum = 0; // Tidak ada tag yang terbaca
return false;
}
}

public bool ReadTagData(byte[] epc, out int errorCode)
{
errorCode = 0; // Inisialisasi errorCode
// Implementasi membaca data tag akan dilakukan di sini.

// Misalkan Anda memiliki metode untuk membaca data EPC dari tag.
// Contoh: Kita hanya mengisi dengan dummy data.
if (epc.Length < 8) // Pastikan panjang epc cukup
{
errorCode = -1; // Mengatur errorCode jika panjang tidak sesuai
return false; // Gagal
}

// Isi data dengan contoh dummy
Array.Copy(new byte[] { 0x12, 0x34, 0x56, 0x78, 0x9A, 0xBC, 0xDE, 0xF0 }, epc, 8); // Dummy data
return true; // Kembalikan true sebagai tanda pembacaan sukses
}

[DllImport("UHFReader288.dll", CallingConvention = CallingConvention.StdCall)]
private static extern int Inventory_G2(ref byte ComAddr, byte QValue, byte Session, byte MaskMem, byte[] MaskAdr,
byte MaskLen, byte[] MaskData, byte MaskFlag, byte AdrTID, byte LenTID, byte TIDFlag, byte Target,
byte InAnt, byte Scantime, byte FastFlag, byte[] pEPCList, ref byte Ant, ref int Totallen, ref int CardNum);
}
}
Я также проверил функции в UHDReader288.dll с помощью JetBrains dotPeek, и эта функция есть. Как вы думаете, в чем я ошибаюсь?

Подробнее здесь: https://stackoverflow.com/questions/790 ... med-invent
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»