声明:   
  function   Test(var   nParam1:   integer;   var   nParam2:   PChar):   Integer;   Stdcall;External'api.dll';   
  调用:   
  p1,p2:pchar;   
  nPa2:   integer;   
  r:   integer;   
  nPa1:array[0..20000]   of   char;   
    
  p1   :=   nPa1;   
  r   :=   Test(nPa2,p1);   
在delphi调用成功,我在c#中这么声明调用:
[DllImport("EsmApi.dll",CharSet   =   CharSet.Ansi,CallingConvention   =   CallingConvention.StdCall)]
static extern int Test( ref int buffercount,   byte[] buffer);
int buffercount=-1;
//StringBuilder buffer=new StringBuilder(20000);
byte[] buffer=new byte[20000];
int reportval=Test(ref buffercount, buffer);//执行会在这行报错,提示:未将对象引用到实例
buffer参数我用StringBuilder 得到一样的结果,都报错。
各位,帮忙看看,dll是人家提供的。