运行magick++程序时内存冲突

Memory violation when running Magick++ programs

本文关键字:内存 冲突 程序 magick++ 运行      更新时间:2023-10-16

我正在运行任何magick++程序,程序链接并编译成功,但当我运行它们时,我得到以下错误。

Inside Call stack Tab:

CORE_RL_Magick++_.dll!6b004bca() 
[Frames below may be incorrect and/or missing, no symbols loaded for CORE_RL_Magick++_.dll] 
CORE_RL_Magick++_.dll!6affb2d8() 
>   button.exe!main(int __formal=-1990322582, char * * argv=0x53535330) Line 65 C++

Inside Output Tab:

'button.exe': Loaded 'C:WindowsSysWOW64msctf.dll'
First-chance exception at 0x6b004bca in button.exe: 0xC0000005: Access violation writing location 0x00bbd458.
Unhandled exception at 0x6b004bca in button.exe: 0xC0000005: Access violation writing location 0x00bbd458.
First-chance exception at 0x6b004bca in button.exe: 0xC0000005: Access violation writing location 0x00bbd458.
Unhandled exception at 0x6b004bca in button.exe: 0xC0000005: Access violation writing location 0x00bbd458.

这是我已经尝试过的事情。

  • 已尝试重新安装Visual Studio.
  • 尝试了x86和x64版本的magick++。
  • 当以上的事情都不起作用时,我最终重新安装了完整格式的操作系统。

但是在重新安装OS, Visual studio和magick++后,我仍然得到相同的错误。

什么是访问冲突写入错误?

p。S:我用的是windows 7 x64,而且我已经以管理员的身份登录了。

我建议从源代码构建magick++,然后使用其中一个magick++测试/演示的项目文件作为如何为您自己的应用程序创建项目文件的示例。您是从源代码构建的,还是从二进制安装包中使用准备好的dll ?你是使用magick++从ImageMagick还是从GraphicsMagick?

Bob Friesenhahn (magick++原作者)

"访问违规写入"意味着你的程序试图写入一个它没有写访问权限的地址。在读取和执行代码时也存在访问冲突。你可以很容易地得到这个:

char* ptr = "foo";
strcpy(ptr, "bar");

建议:

  • 创建程序的调试构建,并查看堆栈跟踪,以找出导致错误的调用顺序。
  • 在这个程序和你已经找到的位置搜索这个错误。