static extern unsafe int GetReaderData(int BlockFlag,char OutDataType,char * OutData,char * ControlData);
依你说,第三个是数组,那就直接定义数组
第四个是结构体,定义这个结构体,你应该知道结构体的具体东西
那就变成:
static extern int GetReaderData(int BlockFlag, char OutDataType, byte[] OutData,
ref CONTROLDATA ControlData);
ref不成的话,可以再试out
依你说,第三个是数组,那就直接定义数组
第四个是结构体,定义这个结构体,你应该知道结构体的具体东西
那就变成:
static extern int GetReaderData(int BlockFlag, char OutDataType, byte[] OutData,
ref CONTROLDATA ControlData);
ref不成的话,可以再试out
解决方案 »
- C#写的斗地主程序。如何实现连选功能
- c#控件网站
- ListBox多选的问题
- 在母板页中TextBox如何取值?
- 用gdi+画图的旋转问题,解决就给分
- 一个正则表达式的问题.替换搜索到的子匹配的字符串.
- !!!!!!花了我1上午时间,全球最大的中文商品搜索引擎诞生了,给点意见
- C#查询出datagridview里有图片,如何在fastreport里打印出来!
- Socket编程,想对一个端口进行监听,有几种方式?
- 大家好,大家新年好,支持Csharp的朋友高谈Csharp的好处吧!!!!
- 一个关于读取Excel的困惑!!!! 怪了!!! 大家看看把!!!
- 研究了很久,还是没办法,只有请各路高手相助!
static extern unsafe int GetReaderData(int BlockFlag,char * OutDataType,char * OutData,char * ControlData);private void btread_Click(object sender, EventArgs e)
{
char[] tmp_buf=new char[512];
char[] tmp_buf1 =new char[512];
char wtype;
int len;
StopFlag = false;
if(RBTBIN.Checked)
{
wtype="bin";
}
else
{
wtype="hex";
}
while (!StopFlag)
{
//Array.Clear(tmp_buf, 0, sizeof(tmp_buf)); //初始化数组内存
// Array.Clear(tmp_buf, 0, sizeof(tmp_buf1));
// len = GetReaderData(0, wtype, tmp_buf, v_control_data);
len =GetReaderData(0,wtype,ref tmp_buf,ref tmp_buf1); //读取数据
} 我这样调用错在哪?
调用的时候把char*改成string 应该就可以了