调用三方DLL出现的错误:FatalExecutionError
调用一个设备的操作DLL文件。 
 初始化的过程都是好的。但是在读缓存的时候出现如下错误:   
 运行库遇到了错误。此错误的地址为   0x79ef067e,在线程   0xe58   上。错误代码为   0xc0000005。此错误可能是   CLR   中的   bug,或者是用户代码的不安全部分或不可验证部分中的   bug。此   bug   的常见来源包括用户对   COM-interop   或   PInvoke   的封送处理错误,这些错误可能会损坏堆栈。   
                         [DllImport( "ldv32.dll ")] 
                         private   static   extern   string   ldv_get_version(); 
                         [DllImport( "ldv32.dll ")] 
                         private   static   extern   short   ldv_open(string   id,ref   short   handle); 
                         [DllImport( "ldv32.dll ")] 
                         private   static   extern   short   ldv_close(short   handle); 
                         [DllImport( "ldv32.dll ")] 
                         private   static   extern   short   ldv_read(short   handle,   ref   byte[]   data,   short   len); 
                         [DllImport( "ldv32.dll ")] 
                         private   static   extern   short   ldv_read(short   handle,   byte[]   data,   short   len);   
 //下面是初始化,OK 
                                     ret   =   ldv_open( "LON1 ",   ref   handle); 
                                     if   (ret   ==   0) 
                                     { 
                                                 Text   =   Text   +    "\tOpen   device   successfully "; 
                                                 timer1.Enabled   =   true; 
                                     }   
 //下面是读数据,出现错误 
                                     short   ret; 
                                     byte[]   data; 
                                     ret   =   ldv_read(handle,   out   data,   257);   //   错误地点 
                                     if   (ret   ==   0) 
                                     { 
                                                 listBox1.Items.Add(DateTime.Now.ToLongTimeString()   +   data); 
                                     }   
------解决方案--------------------try 
 [DllImport( "ldv32.dll ")] 
 private static extern short ldv_read(s