Я получаю эту ошибку: Необработанное исключение в 0x76abc41f в sampleappm.exe: исключение Microsoft C++: Magick :: ErrorBlob в ячейке памяти 0x004cf1c8.. Когда ai выполнит следующий код:
#include <Magick++.h>
#include <iostream>
using namespace std;
using namespace Magick;
int main(int argc,char **argv)
{
InitializeMagick(*argv);
Magick::Image image("100x120", "linen");
image.fillColor("black");
image.write("test.png");// if i comment this line there is no more error at the execution
return 0;
}
Я сделал несколько изменений для обработки исключения, этот код работал для меня, скомпилированный на VС++ 2013 64bit.
Вот результат test.png
Также убедитесь, что у вас есть разрешение на запись, потому что ErrorBlob является ошибкой подсистемы ввода-вывода.
#include <Magick++.h>
#include <iostream>
using namespace std;
using namespace Magick;
int main(int argc,char **argv)
{
InitializeMagick(*argv);
try {
Image image("100x120", "linen");
image.fillColor("black");
image.write("test.png");
}
catch( Exception &error_ )
{
cout << "Caught exception: " << error_.what() << endl;
return 1;
}
return 0;
}
Я предлагаю, вы поймаете исключение Exception, которое вызывается реализацией Magick, напишите его в cout
и попытайтесь выяснить, что произошло:
#include <Magick++.h>
#include <iostream>
using namespace std;
using namespace Magick;
int main(int argc,char **argv)
{
InitializeMagick(*argv);
Magick::Image image("100x120", "linen");
try {
image.fillColor("black");
image.write("test.png"); // this line causes the error
} catch (const Exception& e) {
cout << e.what() << endl;
}
return 0;
}
Ошибка, которую вы видите в исходном примере, говорит только о том, что библиотека среды выполнения MS не может обрабатывать этот тип исключения.