一个delphi的动态库
里面有个函数function _FNREADCARDNO(aCOM:pchar):pchar;
C#调用
[DllImport("RWCard.dll", EntryPoint = "_FNREADCARDNO", ExactSpelling = false, SetLastError = true, CharSet = CharSet.Auto)]
static extern string _FNREADCARDNO(string com);
为什么出来的乱码?

解决方案 »

  1.   

    你可以用byte[]来替换string去处理返回值,然后用gb2312自己转换成string。
      

  2.   


     你读到的值是什么  用HEX表示
      

  3.   

    CharSet = CharSet.AnsiCharSet.Auto在Windows NT以上版本都是Unicode编码...
      

  4.   

    试一下将CharSet改为:
    CharSet = CharSet.Ansi我遇到过同样的问题,当时解决乱码问题需要使用:CharSet = CharSet.Ansi
      

  5.   

    [DllImport("RWCard.dll)] 
    static extern StringBuild _FNREADCARDNO(StringBuild com);