Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/129.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 呈现文本时DirectX 11堆溢出_C++_Directx 11_Heap Corruption - Fatal编程技术网

C++ 呈现文本时DirectX 11堆溢出

C++ 呈现文本时DirectX 11堆溢出,c++,directx-11,heap-corruption,C++,Directx 11,Heap Corruption,我在DirectX 11中使用DWrite.h呈现文本时遇到问题。我正在尝试编写一个应用程序,它将作为我未来游戏的菜单。当我显示按钮时,有时(并非总是)会出现错误(visual studio在Button.cpp中的ID2D1RenderTarget::EndDraw()上显示)。在我提到的通道中,错误并没有说太多(“Gra.exe触发了一个断点”)。当我单击“继续按钮”时,它显示问题与“堆损坏”有关。几天来,我一直在努力为自己找问题。我检查了所有内存分配等,但什么也没找到。奇怪的是,这个错误完

我在DirectX 11中使用DWrite.h呈现文本时遇到问题。我正在尝试编写一个应用程序,它将作为我未来游戏的菜单。当我显示按钮时,有时(并非总是)会出现错误(visual studio在Button.cpp中的ID2D1RenderTarget::EndDraw()上显示)。在我提到的通道中,错误并没有说太多(“Gra.exe触发了一个断点”)。当我单击“继续按钮”时,它显示问题与“堆损坏”有关。几天来,我一直在努力为自己找问题。我检查了所有内存分配等,但什么也没找到。奇怪的是,这个错误完全是随机的——有时会显示,有时不会

有指向我的代码的链接:


如果有任何帮助,我将不胜感激。

请慢慢来,将问题格式化,并在此处包含相关代码。在我看来,没有人会调试您的代码,尤其是像这样…:/很难用其他方式形成它。VS并没有真正说明发生了什么以及发生了什么。错误似乎是随机的,试着把问题封装起来。可能缺少一些静态类的初始化等等。我认为没有人会因为发现错误而阅读你的整个回购协议;当我将这个数组的大小更改为“wcslen(newText)+1”时,应用程序现在并没有那个么难崩溃。在那次改变之前,它每30次就正常运行一次,而不是很少崩溃。有人能告诉我为什么要这样分配吗?我使用安全函数来复制值,不可能复制太多。只是不明白。你为什么在这里使用新的接线员?最简单的方法是只使用std::string或std::wstring。这不适合你。如果需要指向w_字符的指针,只需调用std::wstring.c_str()即可获得该指针。