C#调用非托管Dll时,如果非托管Dll中的方法的参数为char*型,如果将参数单向传递给Dll,C#中应使用string类型参数;如果Dll可能对参数进行修改并返回,C#中应使用StringBuilder类型参数,并注意设置StringBuilder的Capacity使其足以容纳Dll返回的字符串。基本格式类似于:
[DllImport("ICCard.dll", CharSet = CharSet.Ansi)]
private static extern int Rcard(StringBuilder text, int track);
private static extern int Rcard(StringBuilder text, int track);