Включить ImageMagick в MonoTouch

Как лучше всего использовать ImageMagick в MonoTouch?

Добавление библиотеки ImageMagickNET, по-видимому, приводит к ошибкам во время выполнения, например:

Метод «Module:CrtImplementationDetails.DoDllLanguageSupportValidation()» в сборке «/ImageMagickNET/bin/ReleaseQ8/ImageMagickNET.dll» содержит собственный код, который не может быть выполнен Mono на этой платформе. Сборка, вероятно, была создана с использованием C++/CLI.

Доступны двоичные файлы для iPhone, я полагаю, что мне нужно связать всю библиотеку, как описано здесь:

http://monotouch.net/Documentation/Binding_New_Objective-C_Types

?

Спасибо за помощь :)


person Tom    schedule 13.04.2011    source источник


Ответы (2)


эта ошибка отвечает на ваш вопрос для вас:

в сборке '/ImageMagickNET/bin/ReleaseQ8/ImageMagickNET.dll' содержит собственный код, который не может быть выполнен Mono на этой платформе.

Быстрый поиск в Google сообщает мне на странице codeplex imagemagick, что вы, вероятно, используете то, что называется "оболочкой".

это означает, что сам код imagemagick по-прежнему не относится к .NET imagemagick и никогда не будет работать на вашем iPhone.

person Timothy Groote    schedule 14.04.2011

Во-первых, почему это не работает.

Во-вторых, что вы можете с этим поделать.

Почему это не работает: Используемая вами библиотека скомпилирована компилятором C++/CLI против библиотек Microsoft.

Весь управляемый код, который вы используете в MonoTouch, должен быть скомпилирован с использованием сборок и инструментов MonoTouch, поэтому описанное выше не будет работать по двум причинам: (а) в Mono отсутствует компилятор C++/CLI и (б) даже если бы он существовал, вам пришлось бы ссылаться сборки Mono

Что вы можете с этим поделать: вы можете собрать ImageMagic с помощью компилятора Apple C, а затем связать полученный код со своим приложением:

http://monotouch.net/Documentation/Linking_Native_Libraries

Затем для каждого метода ImageMagick, к которому вы хотите получить доступ, вам нужно обернуть его с помощью P/Invoke, руководство доступно здесь:

http://www.mono-project.com/Interop_with_Native_Libraries

person miguel.de.icaza    schedule 16.04.2011