在C#中的参数提示变成了这样
void CardReset(out byte ATR,out int ATRlen,out uint state)

解决方案 »

  1.   

    我不需要很复杂的程序,只是个测试,测试下我的COM组件在C#环境下能不能被成功调用
    谢谢高手门来帮忙
      

  2.   

    byte 参数同样可使用数组指针,其他的不用说了吧
      

  3.   

    try[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 13)]
      

  4.   

    SizeConst = 13?
    如果我不知道函数的返回值是13个字节呢?
    谢谢您再次解答,我会另开贴给分的
      

  5.   

    如果用上面的方法写,是不是一定要声明函数原型?我现在是用引用然后
    NEW出接口来的方法调用函数,怎么写?
      

  6.   

    应该和一下相同
    ==================================
    //声明
    [DllImport("user32")]
    static extern int SetKeyboardState(ref byte lppbKeyState );[DllImport("user32")]
    static extern int GetKeyboardState(ref byte lppbKeyState );
    //使用
    int VK_NUMLOCK = 0x90;
    try
    {
    byte[] bKeys = new Byte[255];
    GetKeyboardState(ref bKeys[0]);
    bKeys[VK_NUMLOCK]= (byte)((bKeys[VK_NUMLOCK] == 0)? 1 : 0);
    SetKeyboardState(ref bKeys[0]);
    }