HK_ListReaders  c的原型怎么写的
  
*****************************************************************************
欢迎使用CSDN论坛专用阅读器 : CSDN Reader(附全部源代码) 最新版本:20070212http://www.cnblogs.com/feiyun0112/archive/2006/09/20/509783.html

解决方案 »

  1.   

    不是提示了么:用户对 COM-interop 或 PInvoke 的封送处理错误,这些错误可能会损坏堆栈。
      

  2.   

    DWORD HK_ListReaders (
    OUT char *pszReaderName,
    IN OUT DWORD *pdwReaderNameLen,
    OUT DWORD *pdwReaderNum
    )
    这是c的函数
      

  3.   

    pszReaderName ,把这个类型改成string试试
      

  4.   

    pszReaderName ,把这个类型改成string试试,程序不报错了,但是运行结果是错误的
      

  5.   

    把这个类型改成stringbuilder试试,程序不报错了,但是运行结果还是错误的
      

  6.   

    调用ret = HK_ListReaders(out pszReaderName, out len, out num); 
    如果正确应该返回0,现在返回的不是0
      

  7.   

    HK_ListReaders(ref pszReaderName, ref len, ref num)
    返回的pszReaderName是“”(不正确),len是0(不正确),num是6(这个返回值是对的)
      

  8.   

    ret = HK_ListReaders(pszReaderName, out len, out num)?
      

  9.   

    ret = HK_ListReaders(pszReaderName, out len, out num)是C#调用dll啊,是不是有问题?
      

  10.   

    把 pszReaderName 定义 [MarshalAs(UnmanagedType.BStr)]string
    调用DLL出错问题最多出现在 参数类型不相符 如果DLL是自己写的 还好办 如果不是自己写的 就要问dll作者