www.91084.com

GVKun编程网logo

如何处理 AccessViolationException(如何处理家庭矛盾)

9

如果您想了解如何处理AccessViolationException和如何处理家庭矛盾的知识,那么本篇文章将是您的不二之选。我们将深入剖析如何处理AccessViolationException的各个

如果您想了解如何处理 AccessViolationException如何处理家庭矛盾的知识,那么本篇文章将是您的不二之选。我们将深入剖析如何处理 AccessViolationException的各个方面,并为您解答如何处理家庭矛盾的疑在这篇文章中,我们将为您介绍如何处理 AccessViolationException的相关知识,同时也会详细的解释如何处理家庭矛盾的运用方法,并给出实际的案例分析,希望能帮助到您!

本文目录一览:

如何处理 AccessViolationException(如何处理家庭矛盾)

如何处理 AccessViolationException(如何处理家庭矛盾)

我在我的 .net 应用程序中使用 COM 对象
(MODI)。我正在调用的方法抛出一个System.AccessViolationException,它被 Visual Studio
截获。奇怪的是我已经将我的调用包装在一个 try catch
中,它具有处理程序AccessViolationExceptionCOMException其他所有内容,但是当 Visual Studio
(2010) 拦截 时AccessViolationException,调试器会在方法调用 (doc.OCR)
上中断,如果我单步执行,它会继续到下一行,而不是进入 catch 块。此外,如果我在 Visual Studio 之外运行它,我的应用程序会崩溃。如何处理在
COM 对象中引发的这个异常?

MODI.Document doc = new MODI.Document();
try
{
    doc.Create(sFileName);
    try
    {
        doc.OCR(MODI.MiLANGUAGES.miLANG_ENGLISH,false,false);
        sText = doc.Images[0].Layout.Text;
    }
    catch (System.AccessViolationException ex)
    {
        //MODI seems to get access violations for some reason,but is still able to return the OCR text.
        sText = doc.Images[0].Layout.Text;
    }
    catch (System.Runtime.InteropServices.COMException ex)
    {
        //if no text exists,the engine throws an exception.
        sText = "";
    }
    catch
    {
        sText = "";
    }

    if (sText != null)
    {
        sText = sText.Trim();
    }
}
finally
{
    doc.Close(false);

    //Cleanup routine,this is how we are able to delete files used by MODI.
    System.Runtime.InteropServices.Marshal.FinalReleaseComObject(doc);
    doc = null;
    GC.WaitForPendingFinalizers();
    GC.Collect();
    GC.WaitForPendingFinalizers();

}

.NET 4.0 – AccessViolationException和WndProc

.NET 4.0 – AccessViolationException和WndProc

我有这个代码片段:

internal class MTool : NativeWindow { private const int WM_LBUTTONDOWN = 0x0201; public event TipDeactivateEventHandler Deactivate; protected override void WndProc(ref System.Windows.Forms.Message m) { if( m.Msg == WM_LBUTTONDOWN ) { if( this.Deactivate != null) { this.Deactivate(); } } base.WndProc(ref m); } }

当我运行我的程序,我得到一个AccessViolationException错误在线base.WndProc(ref m); 我不知道为什么。

显然这是从.NET 2.0移植到4.0,我的理论是,现在可能有一个替代方法用来取代WndProc。 这是吗? 如果不是我为什么得到这个exception?

如何测量用于.NET远程处理的IP端口的进/出字节数?

断开数据Windows程序使用sql Server Compact

为什么相同的代码大小会产生不同大小的exe文件

.NET软件更新pipe理器

function键的标准操作列表

使用Windows传真服务器扩展发送传真 – faxcomexlib

使用Console.WriteLine(C#)或printfn(F#)编写粗体文本?

SendKeys.send被阻止

如何将aspnet_compiler更新到4.6.1?

find“指定的模块找不到”

我通过在方法上面添加这个属性来修复它:

[System.Runtime.ExceptionServices.HandleProcessCorruptedStateExceptions]

然后围绕try / catch发生异常的那一行。 我在这里找到了这个信息。

WndProc的文档显示要求完全信任。 你试过了吗? 例如:

[System.Security.Permissions.PermissionSet(System.Security.Permissions.SecurityAction.Demand,Name = "FullTrust")] internal class MTool : NativeWindow { [System.Security.Permissions.PermissionSet(System.Security.Permissions.SecurityAction.Demand,Name = "FullTrust")] protected override void WndProc(ref Message m) { //...

我怀疑你的代码中有更大的事情发生。 基于你的片段,我会尝试:

注释掉WndProc覆盖,这还是通过崩溃在其他地方的repro?

使WndProc只调用“base.WndProc(ref msg)”。 你仍然得到同样的错误? 什么是callstack? 在堆栈中还有更多的代码吗?

与原来的代码片段,这是唯一发生在WM_LBUTTONDOWN? 当这抛出异常什么是挂钩到该停用处理程序?

如果这些不切实际的尝试,你可能需要更新片段,以更好地解释你正在尝试做什么。

.net – AForge.Video.FFMPEG.dll中发生AccessViolationException

.net – AForge.Video.FFMPEG.dll中发生AccessViolationException

我有一个相机类,在这个课程中我使用了一个计时器,在我的tick事件中,我使用AForge.Net的C/C++li中的VideoFileWriter保存视频(x86,.net framework:v4.6).
这不应该发生,因为这是托管代码.但即使我在try catch块中包装,程序也会因为AccessViolationException而崩溃.我已经验证 Image不是null.与VideoFileWriter有关.这种情况发生在应用程序开始到运行30分钟之间.

An unhandled exception of type ‘System.AccessViolationException’
occurred in AForge.Video.FFMPEG.dll
Additional information: Attempted to read or write protected memory.
This is often an indication that other memory is corrupt.

在Visual Studio的输出中,我看到了

Exception thrown at 0x0C4D689F (swscale-2.dll) in test.exe: 0xC0000005: Access violation writing location 0x09F83D80.
Exception thrown: ‘System.AccessViolationException’ in
AForge.Video.FFMPEG.dll

码:

private: System::Void Video_Recorder_Tick(System::Object^  sender,System::Timers::ElapsedEventArgs^  e)
  {
      Bitmap^ save = ConvertMatToBitmap(image); //function to convert opencv's Mat to .net's Bitmap        
      if(writer!= nullptr)
       writer->WriteVideoFrame(save);
       delete save;
   }

  VideoFileWriter ^writer = gcnew VideoFileWriter();

  private: Void load_VideoWriter()
  {
    writer->Open("C:/video.avi",640,480,10,VideoCodec::Default);        
  }

Visual Studio显示了很少的编写器值

BitRate 400000
Codec Default
FrameRate 10
Height 480
IsOpen true
Width 640

如果有人需要更多信息,请告诉我.
调用堆栈没有多大帮助

enter image description here

令我惊讶的是,互联网上没有人有这个问题!
代码似乎很直接,可能是什么问题?

解决方法

将编解码器指定为AForge.Video.FFMPEG.VideoCodec.MPEG4,该错误应该消失.

.net 访问远程的MSSQL报System.AccessViolationException错误的解决方法

.net 访问远程的MSSQL报System.AccessViolationException错误的解决方法

访问远程的数据库时 报错,本地数据库正常

 

netsh winsock reset   --运行此命令,解决。

netsh winsock reset命令,作用是重置 Winsock 目录。如果一台机器上的Winsock协议配置有问题的话将会导致网络连接等问题,就需要用netsh winsock reset命令来重置Winsock目录借以恢复网络。这个命令可以重新初始化网络环境,以解决由于软件冲突、病毒原因造成的参数错误问题。 netsh是一个能够通过命令行操作几乎所有网络相关设置的接口,比如设置IP,DNS,网卡,无线网络等,Winsock是系统内部目录,Winsock是Windows网络编程接口,winsock工作在应用层,它提供与底层传输协议无关的高层数据传输编程接口,reset是对Winsock的重置操作。当执行完winsock的命令重启计算机后,需要重新配置IP。

access violation PHP has encountered an Access Violation

access violation PHP has encountered an Access Violation

主要出现在windows主机的服务器上。
在php官方,http://bugs.php.net/
也能够查到两三千页的报告,他们官方也是束手无策,经过了11个小版本后,还是没有彻底解决
http://bugs.php.net/search.php?cmd=display&search_for=PHP+has+encountered+an+Access&x=8&y=9
目前我提供一下这几年我维护经验,我的一些民间解决办法
第一种可能:
去掉 php中 eaccelerator 的扩展
这样做能够解决您的问题,不过可能会加重系统负担
因为eaccelerator主要是为了节省系统资源的东西
具体做法是找到php.ini
如果是我帮您配置的,一般在c:/php/php.ini或者 c:/winnt/php.ini 或者c:/windows/php.ini
去掉
zend_extensi
eaccelerator.shm_size="16"
eaccelerator.cache_dir="c:\temp"
eaccelerator.enable="1"
eaccelerator.optimizer="1"
eaccelerator.check_mtime="1"
eaccelerator.debug="0"
eaccelerator.filter=""
eaccelerator.shm_max="0"
eaccelerator.shm_ttl="0"
eaccelerator.shm_prune_period="0"
eaccelerator.shm_
eaccelerator.compress="1"
eaccelerator.compress_level="9"
ea主要是在unix环境下开发的,但是作者忽略到windows实际上不像u主机那样,是没有u主机的那种内存共享机制的
这个bug已经提交给他们了,希望0.9.5能够解决
当然,如果您的机器这个问题不严重,建议还是保留,ea是一块非常优秀的Php缓存+加速软件
配合zo使用,将会降低系统负担 50%-80%左右,提高负载能力、速度和效率 200%左右
第二种可能
session_save_path 需要设定一个实际的物理路径,并且该目录需要everyone的所有权限,类似U主机的0777
第三种可能
c:/winnt/temp 或者 c:/windows/temp
也需要everyone的所有权限,类似U主机的0777
第四种可能
您的内存严重不足,查看一下,如果有问题,请加内存,最好是一次加两条
比如加1G内存,最好是加2条一模一样的512M。否则没有启用双通道,效果也很一般
第五种可能
ZendOptimizer和php的搭配不是很好
换个版本试试看
目前比较稳定的搭配是
php4.3.11+zo 2.5.10a
或者php4.4.1+zo 3.0 beta2
第六种可能
这种多属于用win2003的用户
他们在应用池中设定了限制
比如多长时间回收,最大使用内存多少等等
这些设置势必造成这个经典的php错误
木头经过数以百计的测试,敢担保问题会出现在这里。

以上就介绍了access violation PHP has encountered an Access Violation,包括了access violation方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

今天关于如何处理 AccessViolationException如何处理家庭矛盾的分享就到这里,希望大家有所收获,若想了解更多关于.NET 4.0 – AccessViolationException和WndProc、.net – AForge.Video.FFMPEG.dll中发生AccessViolationException、.net 访问远程的MSSQL报System.AccessViolationException错误的解决方法、access violation PHP has encountered an Access Violation等相关知识,可以在本站进行查询。

本文标签: