最近用delphi2010写了一个动态链接库,想要在C#的WinForm中调用,可是返回的值总是空,下面是具体情况:
1、delphi的dll代码
uses
  SysUtils;
var WGS:system.AnsiString;//此处用全局变量,尝试用局部变量也不行
 function func1(const a:PAnsiChar;b:PAnsiChar):Boolean;stdcall;//参数用PAnsiChar,也尝试过PChar
begin
  WGS:=AnsiString('LL');
  b:=PAnsiChar(WGS);//PChar('dd');//b的值在调用的地方始终是空值,没有改变
  Result:=true;//这个值可以在调用dll的地方取到;
end;
exports
  func1;
begin
end.2、c#中的接口代码class Idp
    {
        [DllImport("myPrj.dll", EntryPoint="func1",CharSet=CharSet.Ansi,  CallingConvention = CallingConvention.StdCall)]
        public static extern Boolean func1( string a, StringBuilder b);//b的类型尝试过string、ref string,都取不到值。
    }
3、c#中调用的地方            StringBuilder b = new StringBuilder("");
            string a = "aa";
            Boolean bl= Idp.func1(a,b);//bl的值是true
            textBox1.Text = b.ToString();//b的值是"",没有改变。我是做C#方面的,对delphi不熟悉,这个问题纠结好久了,网上的办法都尝试过,有的说delphi的pchar对应c#的string,有的说对应c#的stringbuilder,都尝试了---无效;请高手指教。delphi 动态链接库