我准备用C#调用一个API库函数,这是一个读卡器的函数库,主要是对读卡器的一些操作。其中有一个函数是读取出卡内的值,函数说明如下:
    int _stdcall MF_HL_Read(int DeviceAddr, unsigned char block, unsigned char *buffer);
功能:高级读卡函数
参 数: DeviceAddr: 设备地址,0 对所有设备有效。
block: 操作块号,0~63(S50)或0~255(S70)。
buffer:返回块数据,16个字节
返 回:成功则返回 0。以下是我在C#中的声明和调用:
[DllImport("mf32.dll")]
private static extern int MF_HL_Read(int DeviceAddr, byte block, byte []buffer);
public static bool HL_Read(int DeviceAddr, byte block, byte []buffer)
{
int value=0; value=CardReaderWork.MF_HL_Read(DeviceAddr,block,buffer); //获取经过处理后卡中的值
CardReaderWork._cardValue=buffer; //根据返回值判断是否成功读取数据,成功则返回true,否则为false
if(value==0)
{
_errorCode=MI_OK;
return true;
}
else
{
_errorCode=value;
_errorValue=CheckState(_errorCode);
return false;
}
}这里说一下:_errorCode用来存储所产生的错误编码,这些是在库中已经定义好的,与之相对应的是所产生的错误的解释,用_errorValue存储。我的问题是:在这个函数中,buffer既然是参数,那怎么获取?因为buffer存储的是卡内的信息,是需要读出来的,但库函数中却将其声明为参数进行调用,既然这样的话,那应该如何获取?举个例子:假如我在调用的时候,令buffer=1,那我获取的是不是也是为1呢?还是其他的值?