别人给我一个DLL文件,里面有个方法是读取IC卡信息的,方法如下
extern "C"  __declspec(dllexport) BOOL __stdcall ReadCardInformation(int Port,char * Card,char * State,char * Money,char * LimitDegree,char * LimitMoney,char * LimitTime,char * UsedLD,char * UsedLM,char * UserGB)
/* 功能说明:
读卡信息
参数说明:
port:使用的串口号, 例如:"COM1", "COM2"等等
CardNO:卡号,最大99999
Money:金额,最大65535,最小0
LimitDegree:每日限制次数,最大255,最小0
LimitMoney:每日限制金额,最大65535,最小0
LimitTime:自动注销日期.保留’YYYYMMDD’,
UserGB:级别 
State:卡状态,8为正常卡,0是不正常
UsedLD:已使用每日限额
UsedLM:已使用每日次数返回值:
成功为True
使用说明:

*/我要用C#得到IC卡里面的信息
IC卡的信息如下,CardNo卡号,State状态,Banlance余额,UseNum每日限制次数,LimitTime到期时间,LimitMoney消费限额,UsedNum已使用次数,UserGB用户级别,UsedLD已消费次数。如上信息需要在界面中显示出来,哪位帮个忙。

解决方案 »

  1.   

    用Dllimport来引入dll函数,用StringBuilder来替换char*类型例如:
    [DllImport( "yourdll.dll" )]
    private extern static bool ReadCardInformation( int Port, StringBuilder Card,
     StringBuilder State,StringBuilder Money,StringBuilder LimitDegree,StringBuilder  LimitMoney,StringBuilder LimitTime,StringBuilder  UsedLD,StringBuilder  UsedLM,StringBuilder  UserGB);Caution: 调用的时候,注意初始化StringBuilder空间
    StringBuilder Card = new StringBuilder(256);