草庐IT

access-violation

全部标签

c++ - 为什么未初始化的指针会导致接近 0 的内存访问冲突?

据说经常(但不总是)当你在一个接近于零的内存位置(比如89美元)中得到一个AV时,你有一个未初始化的指针。但我在Delphi书籍中也看到过这个......嗯......或者它们都是由同一作者写的???更新:引自BobSwart等人的“C++builder6开发人员指南”,第71页:WhenthememoryaddressZZZZZZZZZisclosetozero,thecauseisoftenanuninitializedpointerthathasbeenaccessed.为什么会这样?为什么未初始化的指针包含低数字?为什么不用像$FFFFFFF这样的大数字或普通随机数呢?这是都市

c++ - 初始化列表中的 QString 导致访问冲突。这里出了什么问题?

在我不理解的初始化列表中使用QString时,我遇到了访问冲突。这是一个重现问题的最小示例。//fileClassA.h#pragmaonce#includestructParameter{QStringstringPar;};classClassA{QStringm_string1;public:voidfunction(Parameterpars);};A类的实现...//fileClassA.cpp#include"ClassA.h"voidClassA::function(Parameterpars){m_string1=pars.stringPar;//lastlinecal

c# - OpenEvent/OpenFileMapping 失败并显示 ERROR_ACCESS_DENIED

我正在开发一个开源.NET程序集(WinSCP.NETassembly),它生成一个native(C++)应用程序并通过事件和文件映射对象与其通信。程序集使用Process类生成应用程序,没有特殊设置。程序集创建一些事件(使用EventWaitHandle)和文件映射(使用PInvokedCreateFileMapping),应用程序使用OpenEvent“打开”这些和OpenFileMapping。在大多数情况下它工作正常。但现在我有一个用户在WindowsServer2008R264位上使用来自ASPX应用程序的程序集。在他的例子中,OpenEvent和OpenFileMappin

c++ - g++ : Is there a way to access compile flags inside the code that is being compiled?

有没有一种方法(例如,定义的常量)来访问正在编译的代码中运行编译器的编译标志。例如,我想要一个程序来写入编译时使用的标志。intmain(){std::coutgcc/g++是否存在这样的常量?或者更好:是否有在gcc和clang中都定义的常量?我对检查优化级别和-march标志的值特别感兴趣。那么,如果没有显示所有标志的常量,是否至少有显示这些值的常量? 最佳答案 以下命令打印出所有预定义的宏:g++-dM-E-这适用于gcc和g++。您可以自行检查-不幸的是,没有宏可让您轻松访问完整的gcc/g++命令行。幸运的是,大多数-m.

c++ - 如何在 Qt 中创建类似连续子表单(小部件)的 ms-access?

我正在考虑将我的访问应用程序移植到Qt。我有兴趣学习如何做连续的子表单,子自定义小部件,用于以真正可滚动的非数据网格方式呈现/编辑/插入记录集中的数据。这意味着我可以为每条记录放置按钮、标签、组合、lineEdit...等等。我喜欢QTableView和委托(delegate)。我只是不知道是否可以修改它以完全模拟访问子表单。附带问题(可能是相同的答案)...他们如何在后台访问这些连续表单。谢谢...不是该示例记录集中的真实应用程序数据 最佳答案 QtMVC可能是您问题的最佳/最简单的答案(http://qt-project.org

c# - 从 C++ 回调到 C# 函数的访问冲突异常/崩溃

因此,我有一个正在使用的native第3方C++代码库(.lib和.hpp文件),我曾使用它在C++/CLI中构建包装器以最终在C#中使用。从Debug模式切换到Release模式时,我遇到了一个特殊问题,因为当回调的代码返回时,我得到了一个访问冲突异常。原始hpp文件中回调函数格式的代码:typedefint(*CallbackFunction)(void*inst,constvoid*data);回调函数格式的C++/CLIWrapper代码:(稍后我会解释为什么我声明了两个)publicdelegateintManagedCallbackFunction(IntPtroInst,

c++ - 异常错误 : Access violation reading location 0xDDDDDDDD

我正在尝试用C++创建一个动态字符串数组。当尝试将我的动态字符串数组的内容显示到控制台时,我收到此错误:Exceptionthrownat0x0FD670B6(msvcp140d.dll)inAssignment4.exe:0xC0000005:Accessviolationreadinglocation0xDDDDDDDD.这是我的代码:DynamicStringArray.h#pragmaonce#include"stdafx.h"#include#includeusingnamespacestd;classDynamicStringArray{public:DynamicStri

c++ - 为什么 shared_ptr 可以访问 ingoring "protected access right"

我用shared_ptr做了一些测试,我想不出下面的问题。我刚开始学习boost库。有谁能告诉我原因吗?#include#includeclassA{public:virtualvoidsing(){std::coutpa(newB());pa->sing();deletestatic_cast(pa.get());deletepa.get();//thislinehasaproblemerrorC2248:“A::~A”:can'taccessprotectedmemmber(declaredinclass“A")return0;}intmain(){foo();return0;}但

c++ - 使用 -fno-access-control 进行单元测试

我见过很多在单元测试时访问私有(private)变量的疯狂方法。我见过的最令人兴奋的是#defineprivatepublic。但是,我从未见过有人建议在编译器级别关闭私有(private)变量。我一直以为你做不到。我曾向许多开发人员提示说,如果您可以只告诉编译器为这个文件后退,单元测试会容易得多。然后我偶然发现了-fno-access-controlGCC编译器选项。这显然是单元测试的完美方式。你的原始源文件没有被修改,没有注入(inject)friend只是为了单元测试,没有用奇怪的预处理器魔法重新编译。编译单元测试时,只需轻按“无访问控制”开关即可。我错过了什么吗?这是我希望的单

c++ - 如何在退出时调试 CorExitProcess 中的访问冲突 0xC0000005?

我们的应用程序(用C++编写,VS2010项目)在Windows8之前的所有操作系统上运行良好(现在仍然如此)。然而,在Windows8上,当有序退出应用程序时,会发生访问冲突:mfc100.dll!_DllMain@12()InanMSDNforumtopic建议在退出前运行GC.Collect(),但在退出前不久我无法对这样的调用产生任何影响。我有点不知该如何调试这个问题。据我了解,CorExitProcess负责清理应用程序的托管资源。那么这可能是托管组件中的错误吗?或者更有可能是_DllMain中的某些函数指针已被覆盖/损坏?如果是这样,我将如何在相关地址设置数据断点?有apo