自己解决了,用VB写一个类,再用C#调用就可以了,C#直接用好象不行

解决方案 »

  1.   

    Public Class ICardVB
        Declare Function Init_com Lib "ICcard_dll.dll" (ByVal sett As String) As Integer
        Declare Function Rcard Lib "ICcard_dll.dll" (ByVal rdata As String, ByVal track As Integer) As Integer
        Declare Function Wcard Lib "ICcard_dll.dll" (ByVal wdata As String, ByVal track As Integer) As Integer
    End Class
      

  2.   

    写卡:
    string commStr = "4,9600,N,8,1";
                int iret = ICardVB.Init_com(ref commStr);
                if (iret != 1)
                {
                    MessageBox.Show("初始化读卡器错误!错误代码:" + iret.ToString());
                }
                else
                {
                    String wdata = new String((char)0, 255);
                    wdata = "123456789";
                    iret = ICardVB.Wcard(ref wdata, 2);
                    if (iret != 1)
                        MessageBox.Show("写入数据错误!错误代码:" + iret.ToString());
                    else
                        MessageBox.Show(wdata.ToString());            }读卡:
    string commStr = "4,9600,N,8,1";
                int iret = ICardVB.Init_com(ref commStr);
                if (iret != 1)
                {
                    MessageBox.Show("初始化读卡器错误!错误代码:" + iret.ToString());
                }
                else
                {
                    String rdata = new String((char)0, 255);
                    iret = ICardVB.Rcard(ref rdata, 2);
                    if (iret != 1)
                        MessageBox.Show("读取数据错误!错误代码:" + iret.ToString());
                    else
                        MessageBox.Show(rdata.ToString());            }
      

  3.   

    rascal 在这里用水写下几个字:以后打星际再不让你了!你这样调来调去的,不累啊?
    本来dephi 可能就调用了某些组件,再然后,你还用vb调用dephi。
    再然后,还用c#调用vb...读卡器嘛,厂家肯定有好几个版本的,问他们要一个呗。