高手们,读卡器的C动态链接库 ReadCard(unsigned char *P1)输入是无
c#里我用这个形式
DllImport(@"Card.dll")]
public static extern int ReadCard(ref byte P1);
在使用的时候如何给ReadCard传参数呀,搞了好久了,始终搞不定
如何使用呀

解决方案 »

  1.   

    用StringBuilder或string(取决于是输出还是输出)容易些。public static extern int ReadCard( StringBuilder s );
      

  2.   

    我使用这个形式
    public static extern int ReadCard( StringBuilder s );StringBuilder sb = new StringBuilder("");
    MessageBox.Show(ReadCard(sb).ToString());但是系统会报对 PInvoke t调试错误
    MessageBox.Show(ReadCard(sb).ToString());
      

  3.   

    你知道ReadCard要输入什么吗?是否有长度要求?StringBuilder sb = new StringBuilder( 4096 );
      

  4.   

    ReadCard(unsigned char *P1)
    试下这样:
    ReadCard([MarshalAs(UnmanagedType.LPArray)]string p1);
    或者
    ReadCard(IntPtr)
      

  5.   

    ReadCard(unsigned char *P1)
    输入是无
    flyerwing
    大哥的ReadCard([MarshalAs(UnmanagedType.LPArray)]string p1);
    或者
    ReadCard(IntPtr)
    我试过了,还是有错误
      

  6.   

    public static extern int ReadCard( StringBuilder s );
    StringBuilder sb = new StringBuilder("");
    MessageBox.Show(ReadCard(sb).ToString());
      

  7.   

    用这个形式还是报错,郁闷死了
    public static extern int ReadCard( StringBuilder s );
    StringBuilder sb = new StringBuilder("");
    MessageBox.Show(ReadCard(sb).ToString());
    不知道怎么才能搞定
      

  8.   

    你得把动态库 复制到 C:/windows/system32目录下 试试