C# 调 DLL 获取函数值的问题,请大神们帮个忙,谢了,两天了没有弄出来,在线等
VC的接口
Bool GetKeyPadStatus( byte * addr, char * pstatus, char * pnumber,byte* ptocounter);
C# 调用
[DllImport("KeyPad.dll", CallingConvention = CallingConvention.StdCall)]
public static extern bool GetKeyPadstatus(ref byte addr, ref string pstatus, ref string pnumber, ref byte ptocounter); //获取终端状态函数
调用函数
byte address1 = 1;
//byte address2 = 2;
string pstatus = "0"; //////////这个值
string pnumber = "0000";
byte mtocounter = 0;//
bool temp = calldll.GetKeyPadstatus(ref address1, ref pstatus, ref pnumber, ref mtocounter);
if (temp)
{
switch (pstatus[0])
{
case '0':
label7.Text = "怎么是0 零 没有获得呼叫器的状态值";
break;
case 'L':
label7.Text = "空闲状态,按了清除键了";
break;
case 'E':
label7.Text = "暂停状态,按了暂停键";
break;
case 'W':
label7.Text = "等待" + pnumber;
break;
case 'P':
label7.Text = "呼叫" + pnumber; //重复呼叫
CallAndPrint();
break;
case 'M':
label7.Text = "转移" + pnumber + "到" + mtocounter.ToString() + "窗口";
break;
case 'S':
label7.Text = "正在受理" + pnumber; break;
case 'U':
label7.Text = "呼叫器要求派号";
byte waitnum = 100; //等待人数
calldll.setKeyPadnumber(ref address1, ref pnumber, waitnum);
Thread.Sleep(120);
CallAndPrint();
break;
}
}
最后获取的pstatus 值 是 0 也就是我开始刚给他的赋值
没有分了 只有25分了,昨天因为没分没能发帖。急死人!!
Bool GetKeyPadStatus( byte * addr, char * pstatus, char * pnumber,byte* ptocounter);
C# 调用
[DllImport("KeyPad.dll", CallingConvention = CallingConvention.StdCall)]
public static extern bool GetKeyPadstatus(ref byte addr, ref string pstatus, ref string pnumber, ref byte ptocounter); //获取终端状态函数
调用函数
byte address1 = 1;
//byte address2 = 2;
string pstatus = "0"; //////////这个值
string pnumber = "0000";
byte mtocounter = 0;//
bool temp = calldll.GetKeyPadstatus(ref address1, ref pstatus, ref pnumber, ref mtocounter);
if (temp)
{
switch (pstatus[0])
{
case '0':
label7.Text = "怎么是0 零 没有获得呼叫器的状态值";
break;
case 'L':
label7.Text = "空闲状态,按了清除键了";
break;
case 'E':
label7.Text = "暂停状态,按了暂停键";
break;
case 'W':
label7.Text = "等待" + pnumber;
break;
case 'P':
label7.Text = "呼叫" + pnumber; //重复呼叫
CallAndPrint();
break;
case 'M':
label7.Text = "转移" + pnumber + "到" + mtocounter.ToString() + "窗口";
break;
case 'S':
label7.Text = "正在受理" + pnumber; break;
case 'U':
label7.Text = "呼叫器要求派号";
byte waitnum = 100; //等待人数
calldll.setKeyPadnumber(ref address1, ref pnumber, waitnum);
Thread.Sleep(120);
CallAndPrint();
break;
}
}
最后获取的pstatus 值 是 0 也就是我开始刚给他的赋值
没有分了 只有25分了,昨天因为没分没能发帖。急死人!!
...全文
相关推荐
C#动态获取DLL类库文件中的方法并调用
本篇文章将详细探讨如何利用C#来动态获取DLL类库文件中的方法并进行调用。首先,我们需要了解DLL(动态链接库)在Windows操作系统中的作用。
C# 调用dll文件
一、DLL与应用程序 动态链接库(也称为DLL,即为“Dynamic Link Library”的缩写)是Microsoft Windows最重要的组成要素之一,打开Windows系统文件夹,你会发现文件夹中有很多DLL文件,Windows就是将一些主要的系统功能以DLL模块的形式实现。 动态链接库是不能直接执行的,也不能接收消息,它只是一个独立的文件,其中包含能被程序或其它DLL...
很好用的 C#的DLL反编译C#的DLL反编译C#的DLL反编译
首先,我们要知道DLL反编译的主要目的是为了获取源代码,以便于学习、调试或修改已有的功能。
基于C#调用c++Dll结构体数组指针的问题详解
基于C#调用C++ Dll结构体数组指针的问题详解C#调用C++ Dll文件是一件很麻烦的事情,首先面临的是数据类型转换的问题。
C#动态调用Dll中的方法
如果方法没有参数,可以传入null。在某些情况下,DLL方法可能有参数。


