要调用一个DLL中的函数
函数原型如下:
ExpandData
展开交易记录数据。
function ExpandData (
dType:integer;
pData:PChar;
buf:PRecData):integer; 参数
sType
交易记录类型。0:考勤门禁机记录;1:餐饮收费机记录。
pData
待展开的字符串。考勤记录为13字节,消费记录为16字节。
buf
数据结构指针,指向返回数据的结构。 返回值
如果函数调用成功,返回值为1000。
如果函数调用失败,返回值不为1000。如需得到错误描述,请调用GetTAErrMsg。 说明
返回的数据结构如下:
RecData = record
RecType:string; //记录类型
CardNo:string; //卡号
RecTime:Tdatetime; //时间
Fare:real; //交易金额
Balance:real; //余额
CardType:integer; //消费卡类
MealType:integer; //餐别
OperNo:string; //操作类型(保留)
end;
PRecData=^RecData; //指向以上结构的指针相对考勤记录,结构中只有卡号和时间为有效内容。消费额等只对餐饮消费记录才有意义。其中数据结构指针在C#中 怎么实现啊?
函数原型如下:
ExpandData
展开交易记录数据。
function ExpandData (
dType:integer;
pData:PChar;
buf:PRecData):integer; 参数
sType
交易记录类型。0:考勤门禁机记录;1:餐饮收费机记录。
pData
待展开的字符串。考勤记录为13字节,消费记录为16字节。
buf
数据结构指针,指向返回数据的结构。 返回值
如果函数调用成功,返回值为1000。
如果函数调用失败,返回值不为1000。如需得到错误描述,请调用GetTAErrMsg。 说明
返回的数据结构如下:
RecData = record
RecType:string; //记录类型
CardNo:string; //卡号
RecTime:Tdatetime; //时间
Fare:real; //交易金额
Balance:real; //余额
CardType:integer; //消费卡类
MealType:integer; //餐别
OperNo:string; //操作类型(保留)
end;
PRecData=^RecData; //指向以上结构的指针相对考勤记录,结构中只有卡号和时间为有效内容。消费额等只对餐饮消费记录才有意义。其中数据结构指针在C#中 怎么实现啊?
[StructLayout(LayoutKind.Sequential, CharSet=CharSet.Unicode)]
internal struct RecData
{
public string RecType;
public string CardNo;
public DateTime RecTime;
public float Fare;
public float Balance;
public int CardType;
public int MealType;
public string OperNo;
}[DllImport("你的dll", SetLastError=true, CharSet=CharSet.Auto)]
private static extern int ExpandData(int dType, ref char pData, ref RecData pRecData);代码:RecData _rectData = new RecData();
//你自己的赋值代码
char s = 's';
ExpandData(10000, ref s, ref _rectData);
[StructLayout(LayoutKind.Sequential, CharSet=CharSet.Unicode)]
public struct RecData
{
public string RecType;
public string CardNo;
public DateTime RecTime;
public float Fare;
public float Balance;
public int CardType;
public int MealType;
public string OperNo;
}[DllImport("你的dll", SetLastError=true, CharSet=CharSet.Auto)]
public static extern int ExpandData(int dType, ref char pData, ref RecData pRecData);代码:RecData _rectData = new RecData();
//你自己的赋值代码
char s = 's';
ExpandData(10000, ref s, ref _rectData);