C# Load Library Dll问题

ws6455 2012-03-01 10:57:57
我有两个 两个动态库 VC6.0++开发,编译成Release实体 OUR_IDR.dll 和 IDUSB.dll

OUR_IDR.dll :
函数名:idr_read
功能: 寻卡并返回该卡的序列号
原始声明 unsigned char __stdcall idr_read (unsigned char *serial)
输入: 形参*serial只需指向一个至少已分配了5个char空间的可写数组 unsigned char *指针, serial的下标由0开始。Serial数组的内容无需赋值,因为此数组仅用于返回值。
返回: 返回unsigned char值,并将寻到的卡的序列号传值到*serial数组。



public class LoadLibraryDll
{
/// <summary>
/// 载入DLL,读卡,返回卡信息
/// </summary>
/// <param name="i"></param>
/// <returns></returns>
//以C元素指针,从托管到非托管进行封装处理
[DllImport("OUR_IDR.dll", EntryPoint = "idr_read")]
public static extern byte idr_read([MarshalAs(UnmanagedType.LPArray)] byte[] serial);

[DllImport("OUR_IDR.dll")]
public static extern byte pcdgetdevicenumber([MarshalAs(UnmanagedType.LPArray)] byte[] devicenumbe);
}

public class ReturnCardRead
{
//创建数据缓存区间
byte[] cardNo = new byte[10];
//返回状态消息
string statusMsg = null;
/// <summary>
/// 读取卡号
/// </summary>
/// <returns></returns>
public String IdrRead()
{
try
{
//调用非托管DLL方法,并返回处理结果
byte readCardInfo = LoadLibraryDll.idr_read(cardNo);
//数据分割
string strValue = null;
//读取缓存控件大小
for (int i = 0; i < cardNo.Length; i++)
{
//每个空间的数据转换字符串
strValue += cardNo[i].ToString();

if (strValue.Length == 1)
strValue = "0" + strValue;
strValue += strValue;
}
//截取
strValue = strValue.Substring(2, 8);
//转化成非0开头的数字
int intTemp = Convert.ToInt32(strValue, 16);
strValue = intTemp.ToString();

//#define ERR_REQUEST 8//寻不到卡
//#define ERR_NONEDLL 21//没有动态库
//#define ERR_DRIVERORDLL 22//动态库或驱动程序异常
//#define ERR_DRIVERNULL 23//驱动程序错误或尚未安装
//#define ERR_TIMEOUT 24//操作超时,一般是动态库没有反映
//#define ERR_TXSIZE 25//发送字数不够
//#define ERR_TXCRC 26//发送的CRC错
//#define ERR_RXSIZE 27//接收的字数不够
//#define ERR_RXCRC 28//接收的CRC错


但是每次调用都出问题
返回信息: 23 但是驱动确实是放在 project/Bin/Debug 下了 Bin 下也放了
在VC++ 下测试是通过的..
还有就是每次我怎么能一刷卡就调用到这个方法
要写个监视么?


PS: 不要太关注于头像...那只是一张图片而已...
...全文
169 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
ws6455 2012-03-01
  • 打赏
  • 举报
回复
怎么没有人啊...求大神解答啊...
  • 打赏
  • 举报
回复
头像确实不错

求种子!!!

110,530

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧