我用{DllImport]来引用一win32下的DLL文件:
=============================================================
[DllImport("all.dll")]
static extern UInt32 test(string iodata);
=============================================================
用C#调用:
string IOData="01";
ret=test(IOData);
this.Text1.Text=IOData;
……
按照要求向Test传送一个参数后,此参数会返回一个值:“2005”,可在这里仍为“01”。
请各位高手提提意见。

解决方案 »

  1.   

    string IOData="01";
    ret=test(IOData);
    this.Text1.Text=IOData;
    上面的代码等同与下面的代码
    string IOData="01";
    this.Text1.Text=IOData;
      

  2.   

    [DllImport("all.dll")]
    static extern UInt32 test(ref string iodata);=============================================================string IOData = "01";
    ret = test(ref IOData);
    this.Text1.Text = IOData;
      

  3.   

    解决了,原来这里要用引用类型的变量,改成StringBuilder就可以了。
    [DllImport("all.dll")]
    static extern UInt32 test(StringBuilder iodata);=============================================================StringBuilder IOData = new StringBuilder("01");
    ret = test(ref IOData);
    this.Text1.Text = IOData.ToString();