日期:2014-05-19  浏览次数:21128 次

C#调用DELPHI的DLL时传递string数组的问题
DELPHI里的是这样的:
function   ArrayTst(strAry:Array   of   PChar):PChar;stdcall;
var
    i:integer;
    strAdd:string;
begin
    strAdd:= ' ';
    for   i:=low(strAry)   to   High(strAry)   do
    begin
        strAdd:=strAdd+strAry[i]
    end;
    Result:=PChar(strAdd);
end;

C#里是这样的:
声明:
[DllImport( "ArrayTest1.dll ",   EntryPoint   =   "ArrayTst ",   CharSet   =   CharSet.Ansi,CallingConvention=CallingConvention.StdCall)]
public   extern   static   string   ArrayTst(string[]   ary);

调用:
string[]   arytst=new   string[]{ "a1 ", "b2 ", "c3 "};
TextBox1.Text=ArrayTst(arytst);
但报出System.NullReferenceException:   未将对象引用设置到对象的实例

发了两遍的贴子,没有一个人回,如果还没有人回我再也不来这个论坛了,这个问题已经困扰我几天了,在这个论坛也等了几天了,如果再得不到结果就放弃算了。

------解决方案--------------------

------解决方案--------------------
http://interop.managed-vcl.com/cominterop_delphi.php