Рассмотрите:
sizer.ResizeImage(inputImage, outputImage, 0.5, ImageFormat.Jpeg);
, Что, если Вы использовали менее ясные имена переменной:
sizer.ResizeImage(i, o, x, ImageFormat.Jpeg);
Предполагают, что Вы распечатали этот код. Более трудно вывести, каковы эти аргументы, поскольку у Вас нет доступа к сигнатуре метода.
С быстрым интерфейсом, это более ясно:
sizer.FromImage(i)
.ToLocation(o)
.ReduceByPercent(x)
.OutputImageFormat(ImageFormat.Jpeg)
.Save();
кроме того, порядок методов не важен. Это эквивалентно:
sizer.FromImage(i)
.ReduceByPercent(x)
.OutputImageFormat(ImageFormat.Jpeg)
.ToLocation(o)
.Save();
, Кроме того, возможно, у Вас могли бы быть значения по умолчанию для выходного формата изображения и сокращение, таким образом, это могло стать:
sizer.FromImage(i)
.ToLocation(o)
.Save();
Это потребовало бы, чтобы перегруженные конструкторы достигли того же эффекта.
Я действительно нашел ответ на мой вопрос из-за того, что мне нужно было его полностью сформулировать, и я сделал лучший поиск в Google :) Кажется,
__attribute__((dllimport)) // import
__attribute__((dllexport)) // export
Попробую это, я подумал, что оставлю вопрос здесь, на случай, если кто-то еще наткнется на эту проблему (и в качестве предупреждения для людей, тот же заголовочный файл, включенный в "основной двоичный файл" и DLL обычно приводит к другой фактической реализации, в зависимости от параметров компилятора - если вы не поместите в класс правильные атрибуты dllimport / export).
Это будет работать, только если включен RTTI. Вы, вероятно, получите это автоматически в MSVC ++, но gcc требует определенных переключателей ссылок. Подробности см. В FAQ по GCC .