各位大侠救命啊,我写一个C#的程序需要调用金诚信的ghc715读卡器
提供了一个ghc715.dll文件,但是我调用的时候总是出现"尝试读取或写入受保护的内存。这通常指示其他内存已损坏。"dll供应商的提供的方法int  __declspec (dllexport) __stdcall readcard(int comport,int track,char *data1,char *data2,int model,long int cmto) C#调用此方法的代码[DllImport("ghc715.dll", ExactSpelling = true, SetLastError = true)]
public static extern int readcard(int com, int m_nTrack, ref string data1, ref string data2, int model, int iDelay);private void button1_Click(object sender, EventArgs e)
{    string data1 = "";
    string data2 = "";
    int i = readcard(1, 2, ref data1, ref data2, 2, 3000);
    textBox1.Text = data2;}
详细错误信息:
   在 MembershipCardDemo.Form2.readcard(Int32 com, Int32 m_nTrack, String& data1, String& data2, Int32 model, Int32 iDelay)
   在 MembershipCardDemo.Form2.button1_Click(Object sender, EventArgs e) 位置 f:\My Documents\Visual Studio 2005\Projects\MembershipCardDemo\MembershipCardDemo\Form2.cs:行号 28
   在 System.Windows.Forms.Control.OnClick(EventArgs e)
   在 System.Windows.Forms.Button.OnClick(EventArgs e)
   在 System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
   在 System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
   在 System.Windows.Forms.Control.WndProc(Message& m)
   在 System.Windows.Forms.ButtonBase.WndProc(Message& m)
   在 System.Windows.Forms.Button.WndProc(Message& m)
   在 System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   在 System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   在 System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
   在 System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
   在 System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(Int32 dwComponentID, Int32 reason, Int32 pvLoopData)
   在 System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
   在 System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
   在 System.Windows.Forms.Application.Run(Form mainForm)
   在 MembershipCardDemo.Program.Main() 位置 f:\My Documents\Visual Studio 2005\Projects\MembershipCardDemo\MembershipCardDemo\Program.cs:行号 17
   在 System.AppDomain.nExecuteAssembly(Assembly assembly, String[] args)
   在 System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
   在 Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
   在 System.Threading.ThreadHelper.ThreadStart_Context(Object state)
   在 System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   在 System.Threading.ThreadHelper.ThreadStart()