以下是c++中的函数:
Function PR2MagReadTrack2(hDev:integer;n:integer;const RecData:LPStr):integer;stdcall;
//功能: 读存折上的磁条二磁道信息
//参数:hDev-设备描述表,n-磁条标准,RecData-存放读到信息的指针.
//返回: 0-执行正确;小于0执行失败
// -2 - 空白磁条
// -3 - 读出错或校验错
// -4 - 没有存折我在c#中是这样写的:
[DllImport("pr2.dll", CharSet = CharSet.Ansi, EntryPoint = "PR2MagReadTrack2")]
public static extern int PR2MagReadTrack2(int hDev, int n, StringBuilder RecData); StringBuilder m_magtrack2 = new StringBuilder(256);
int ival = PR2MagReadTrack2(m_hdev, 2, m_magtrack2);但运行时有时是好的,有时出错
Function PR2MagReadTrack2(hDev:integer;n:integer;const RecData:LPStr):integer;stdcall;
//功能: 读存折上的磁条二磁道信息
//参数:hDev-设备描述表,n-磁条标准,RecData-存放读到信息的指针.
//返回: 0-执行正确;小于0执行失败
// -2 - 空白磁条
// -3 - 读出错或校验错
// -4 - 没有存折我在c#中是这样写的:
[DllImport("pr2.dll", CharSet = CharSet.Ansi, EntryPoint = "PR2MagReadTrack2")]
public static extern int PR2MagReadTrack2(int hDev, int n, StringBuilder RecData); StringBuilder m_magtrack2 = new StringBuilder(256);
int ival = PR2MagReadTrack2(m_hdev, 2, m_magtrack2);但运行时有时是好的,有时出错
public static extern int PR2MagReadTrack2(int hDev, int n, string RecData);
上面是const,不要用stringbuilder
而LPCSTR中增加的‘C’的含义是“CONSTANT”(常量),表明这种数据类型的实例不能被使用它的API函数改变,除此之外,它与LPSTR是等同的。