对方提供的函数如下
int __stdcall YTLGetDesc  ( char  pszDesc[1024] ) 
pszDesc是返回值
在C#中应该如何定义传参

解决方案 »

  1.   

    用byte[] Desc就行,不过这样你需要自己把字节数组转成string
    或者用StringBuilder Desc,并且在DllImport里面写 Charset.Ansi
      

  2.   

    StringBuilder pszDesc = new StringBuilder("要传入的字符串");
    int r = YTLGetDesc(pszDesc);
      

  3.   

    [DllImport("xxx.dll")]
    public static extern int YTLGetDesc( byte[] res);
    ......
    byte[] buf = new byte[1024];
    int retcode = YTLGetDesc(buf);
    简单点,按上面试试
      

  4.   

    用byte[] Desc就行,不过这样你需要自己把字节数组转成string
    或者用StringBuilder Desc,并且在DllImport里面写 Charset.Ansi
      

  5.   


     [DllImport("yourdllname", EntryPoint = "YTLGetDesc", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
     public static extern int YTLGetDesc( StringBuilder res);stringbuilder先分配足够的空间
    StringBuilder pszDesc = new StringBuilder(5000);
    int result = YTLGetDesc(pszDesc);