Используя Visual Studio 2017 Community Edition
и проверенный C++
код, я получаю сообщение об ошибке при попытке скомпилировать и связать приложение Windows C++
Form.
Я пытаюсь получить данные exif изфайл изображения jpeg, использующий подход с использованием атрибута Magick ++, но я получаю ошибки ссылок LNK2028 и LNK2019 для атрибута экземпляра объекта изображения.Версия ImageMagick - 6.9.3-7, скомпилированная с заголовками Magick ++.Операционная система - Windows 10. У меня возникает та же проблема, когда я пытаюсь использовать последнюю версию Image Magick для Windows, скомпилированную аналогичным образом.
Exif-данные находятся в командной строке Windows indentify -verbose filename.
Методы Magick ++, которые я использую, такие как чтение, качество, изменение размера и запись всех ссылок и работают нормально, но атрибут не работает - (стандартная строка) extract_data = image.attribute ("exif: DateTime");выдает ошибки ссылки.
Если я закомментирую блок кода, содержащий оператор image.attribute, программа компилирует, связывает и выполняет OK.
На отдельном ПК с Windows 7 идентичныйКод C ++ компилируется, связывается и выполняется отлично.На этом ПК интегрированной средой разработки является Visual Studio 2010 Express с ImageMagick 6.8.6.
Пробовали разные версии ImageMagick в соответствии с приведенным выше описанием.
Magick::InitializeMagick(NULL);
Magick::Image image; // create an instance of the Magick::Image class
image.read(std_input_file_name); // read the selected jpg file into the image object
... develop the resize parameters (not shown)
image.resize(Magick::Geometry(int_output_width, int_output_height));
... the above works fine.
... but if I include:
std::string extracted_data, date_time_data;
extracted_data = image.attribute("exif:DateTimeOriginal");
... I get the linkage errors
Не указано никаких ошибок компиляции.
Я пытаюсь избавиться от двух ошибок связывания: неразрешенный токен LNK2028 (0A00079D) "public: класс std :: basic_string, класс std :: allocator> __thiscall Magick :: Image :: attribute (класс std:: basic_string, класс std :: allocator>) "(? attribute @ Image @ Magick @@ $$ FQAE? AV? $ basic_string @ DU? $ char_traits @ D @ std @@ V? $ allocator @ D @ 2 @@std @@ V34 @@ Z) ссылка на функцию "private: void __clrcall UseLIB :: Form1 :: btnStart_Click (класс System :: Object ^, класс System :: EventArgs ^)" (? btnStart_Click @ Form1 @ UseLIB @@ $$FA $ AAMXP $ AAVObject @ System @@ P $ AAVEventArgs @ 4 @@ Z) * 1021 *
и неразрешенный внешний символ LNK2019 "public: class std :: basic_string, класс std :: allocator> __thiscall Magick :: Image:: attribute (класс std :: basic_string, класс std :: allocator>) "(? attribute @ Image @ Magick @@ $$ FQAE? AV? $ basic_string @DU? $ Char_traits @ D @ std @@ V? $ Allocator @ D @ 2 @@ std @@ V34 @@ Z) ссылка на функцию "private: void __clrcall UseLIB :: Form1 :: btnStart_Click (класс System :: Object ^, класс System :: EventArgs ^) "(? btnStart_Click @ Form1 @ UseLIB @@ $$ FA $ AAMXP $ AAVObject @ System @@ P $ AAVEventArgs @ 4 @@ Z) * 1023 *
Любой совет будет наиболее ценными благодарю вас в ожидании.