用.net调用非托管dll出现错误:尝试读取或写入受保护的内存。这通常指示其他内存已损坏。c#和vb.net都试过代码如下:声明:
[DllImport("refprop.dll", CharSet = CharSet.Auto)]
 public static extern unsafe void SETUPdll(int i, string hfld, string hfmix, string hrf, double ierr, string herr, int ln1, int ln2, int ln3, int ln4);调用:  int i, nc = 1;
 hfld="nitrogen.fld";
  hfmix="hmx.bnc";
  hrf="DEF";
  int ierr=0; SETUPdll(nc, hfld, hfmix, hrf, ierr, herr, 10000, 255, 3, 255);运行到这就报错上面的内存错误。但是我在vb6.0调用的时候 完全没问题。vb6.0的代码:声明:
Public Declare Sub SETUPdll Lib "REFPROP.DLL" (i As Long, ByVal hfld As String, ByVal hfmix As String, ByVal hrf As String, ierr As Long, ByVal herr As String, ln1 As Long, ln2 As Long, ln3 As Long, ln4 As Long)调用:Sub Example()
  Dim i As Integer 
  nc = 1
  hfld = "nitrogen.fld"
 
  hfmix = "hmx.bnc"
  hrf = "DEF"
  Call SETUPdll(nc, hfld, hfmix, hrf, ierr, herr, 10000&, 255&, 3&, 255&)end sub
请高人解答,多谢了。