C#里如何调用dll里的extern "C" _declspec(dllexport) void MyStr(char* strTest)函数?C#里定义函数为public static extern  void MyStr(char* strTest);编译不能通过,会提示“指针只能用于不案例的上下文中”

解决方案 »

  1.   

    编译时候加上unsafe
    strTest要用string转出来
      

  2.   

    查了一下资料,把char*改成string就行了,C#好象会自己转
    public static extern void MyStr(string strTest);
    但这样有个问题,虽然能编译,能运行,但strTest显示出来却是乱码。
    应该是dll里的Ansi到C#里成了Unicode的问题。
    现在dll里我必须用Ansi的char*,请问如何让C#里的字符串显示正常?
      

  3.   

    [DllImport("xx.dll", CharSet=CharSet.Ansi)]
    static extern  void MyStr(string strTest);
      

  4.   

    [DllImport("xx.dll")]

    做成com组件调用第一种方法简单。