access-violation相关内容
我一直听到人们谈论不可空引用类型如何解决如此多的错误并使编程变得如此简单.甚至 null 的创建者也称其为他的十亿美元的错误,以及Spec# 引入了不可为空的类型来解决这个问题. 编辑:请忽略我对 Spec# 的评论.我误解了它的工作原理. EDIT 2:我一定是在和错误的人说话,我真的希望有人与之争论:-) 所以我猜,作为少数,我错了,但我不明白为什么这场辩论有任何价值.我认为
..
访问(只读)释放的内存是否会导致访问冲突,如果是,在什么情况下? 解决方案 是的,可以.“访问冲突"(“分段错误"等)是当进程尝试访问(甚至只是为了读取)操作系统已知为“空"、“释放"或由于某些其他原因无法访问.这里的关键时刻是操作系统/硬件必须知道内存是空闲的.C 标准库的内存管理函数不一定会将“释放"的内存返回给操作系统.他们可能(并将)保留它以备将来分配.因此,在某些情况下,访问“释
..
为了测试这个问题,我编写了一个最小的 Windows 应用程序.如果我在 WM_PAINT 处理程序中强制访问冲突,这个异常永远不会到达调试器.如果在没有调试器的情况下启动,访问冲突也不会出现.通常,您应该会看到 Windows 错误报告对话框. 再深入一点,似乎 user32.dll 中的某些东西可以捕获所有传入的异常.这是正常行为吗?我能以某种方式控制它吗?捕获所有异常不是一种安全风险吗
..
我有一个大型 Compact Frameworks V2.0 应用程序,在大多数情况下运行良好.在某些设备上,用户每天大约会收到一次本地错误 0xC0000005,该错误未被标准托管 Try/Catch 块捕获. 我的应用程序以固定的时间间隔通过 ASMX 调用与服务器同步.该问题似乎发生在同步过程中.除了同步时发生的 ASMX 调用之外,还有相当多的业务逻辑,但其中 98% 是托管代码.我
..
使用 c 风格的字符串,如何将字符分配给字符指针指向的内存地址?例如,在下面的示例中,我想将 num 更改为“123456",因此我尝试将 p 设置为“0"所在的数字,并尝试用“4"覆盖它.谢谢. #include #include int main(){char* num = (char*)malloc(100);字符* p = num;num = "123056";p = p+3;//设置指
..
在我的程序中,我有以下代码: //代码如果不是 CreateProcess(nil, NonConstCmd, nil, nil, True, NORMAL_PRIORITY_CLASS 或CREATE_NEW_PROCESS_GROUP, nil, PCh, SI, P) 然后//代码 而且我不断收到访问冲突错误.顺便说一句,在 Delphi7 中,相同的代码可以完美运行.我读过MSDN,发
..
我正在尝试从 C# 调用以下简单的 C 函数: SIMPLEDLL_API const char* ReturnString(){return "返回一个静态字符串!";} 使用以下 P/Invoke 声明(带或不带 return 属性,没有区别): [DllImport("SimpleDll")][返回:MarshalAs(UnmanagedType.LPStr)]公共静态外部字符串 Re
..
我正在阅读 C++ 中的 CreateProcess 函数,我想尝试一下.代码的基本思想是让我的主要执行另一个进程(记事本).真的,这只是基本代码.当我运行程序时,我得到: createprocess.exe 中 0x752bb763 处的第一次机会异常:0xC0000005:访问冲突写入位置 0x00be57b8. createprocess.exe 中 0x752bb763 处未处理的
..
使用 David Brown 在 ImplicitOperator 上的可下载示例 我已经将 DOT 文件的 经常 工作 GraphViz 渲染器组合到内存中图像. 不幸的是,我的版本在 IIS 7 ASP.NET Web 应用程序中以八分之一的执行失败率失败.我知道 DOT 文件数据是一致的,因为我比较了失败的实例对工作实例,它们是相同的. 由于 David 的网站似乎暗示该博客的未
..
我提前为一个新手问题道歉,但为什么我在下面的代码中出现“访问冲突"错误(在“Create(SelectorForm);"行上)?我尝试使用主窗体作为所有者,但没有任何区别. varSelectorForm: TSelectorForm;ArrayOfImages:TImage 的数组 [1..10];执行过程 TSelectorForm.FormCreate(Sender: TObject);无
..
以下 MSDN 示例承诺演示如何使用 VB6 中的 .NET BackgroundWorker,但它因 AccessViolationException 而失败.唯一的解决方法是将 VB6 代码编译为 P 代码,但这对我们来说不是一个可行的选择. http://msdn.microsoft.com/en-us/library/aa719109(VS.71).aspx 这里是 问题的很多
..
这是驻留在 DLL 中的 C 函数的原型: extern "C" void__stdcall__declspec(dllexport) ReturnPulse(double*,double*,double*,double*,double*); 在另一个线程中,我询问了如何正确地创建并向该函数发送必要的参数. 这里是线程:我如何包装这个 C 函数,有多个参数,有 ctypes? 所以
..
在过去的 2 天里,我一直被一个似乎无法摆脱的违规行为所困扰.我使用了断点并找到了错误所在,但我只是希望你们中的一个人知道问题所在,而不必复制+粘贴我的所有代码 -.- 我要了 Escape.exe 中 0x1027cb1a (msvcr100d.dll) 处的第一次机会异常:0xC0000005:访问冲突写入位置 0xcccccccc.Escape.exe 中 0x1027cb1a
..
具体是下面的代码,标记下面的那一行行吗? struct S{一个;};#include int main(){结构 S * p;p = malloc(sizeof(struct S) + 1000);//这一行:*(&(p->a) + 1) = 0;} 人们在此处争论不休,但没有人给出令人信服的解释或参考. 他们的论点略有不同,但基本相同 typedef struct _pack{in
..
我正在开发的太空入侵者游戏遇到一个非常奇怪的问题.基本上我得到一个访问冲突错误: 0x5edad442 (msvcr100d.dll) 中的未处理异常SpaceInvaders.exe:0xC0000005:访问冲突读取位置0x00000000. 当我包含下面的代码时.调试时,visual studio 带我到“strcmp.asm".请注意,我没有在我的任何代码中使用 strcmp(
..
我的客户希望在应用程序的 Customer 表单中有一个文本框,它为开头的街道名称提供适用的结尾.他开始输入街道名称,文本框提供了以他在文本框中输入的字符序列开头的街道列表. 我对自己说:没关系,文本框具有 AutoCompleteCustomSource 属性,即使常见街道名称列表比开始时预填充的要长,我也可以通过查询访问数据库,填充AutoCompleteStringCollection
..
我们的应用程序遇到了奇怪的致命 System.AccessViolationException.我们看到这些是因为我们已经配置了 AppDomain.CurrentDomain.UnhandledException 事件来记录异常. 异常:System.AccessViolationException:试图读取或写入受保护的内存.这通常表明其他内存已损坏.在 System.Windows.For
..
有趣的是,以下 C# 代码会在 .NET4.0 上崩溃,但在 .NET2.0 上运行良好. C# 代码 class 程序{静态无效主(字符串 [] args){尝试{异常测试();Console.WriteLine("完成!");}捕获(例外 e){Console.WriteLine("错误!!!");Console.WriteLine(e.Message);}}[DllImport("b
..
我正在开发 VC++ 控制台应用程序. 此应用程序从 Appdata\Roaming 文件夹发送一个文件一段时间. 发生的事情是我收到此崩溃错误: 问题签名:问题事件名称:APPCRASH应用程序名称:App.exe应用版本:1.0.0.2应用时间戳:51c02fa8故障模块名称:PCMeter.exe故障模块版本:1.0.0.2故障模块时间戳:51c02fa8异常代码:c00000
..
我在 SO 中的 C 程序中看到了很多关于 getting segment fault 的问题,我认为参考这里的那些问题会很好,这个问题在某些情况下会导致分段错误.我的回答贴在下面. 正如一些答案中所写,对于所有情况,行为都是未定义的,虽然很多人遇见他们segmentation fault,所以这个问题是关于什么原因造成的“症状". 在以下情况下,我在运行程序时出现分段错误,您能确定原
..