Сборка/вызов librsync в Windows из Delphi 2010

В настоящее время я использую порт Windows rdiff из моего приложения delphi 2010 для вычисления дельты/сигнатуры для удаленной дельты/дифференциала.

Я пытаюсь изучить возможность использования библиотеки librsync вместо rdiff, я много гуглил и читал, я нашел эти файлы (можно найти/установить с помощью cygwin - librsync-dev-0.9.7-3):

cygrsync-1.dll
librsync.a
librsync.dll.a
librsync.la

Однако совсем неясно, как вызывать эту dll (если предположить, что это вообще возможно!)

Кто-нибудь знает, как вызвать librsync/cygrsync-1.dll из Delphi 2010?

Спасибо!


person TheDude    schedule 17.03.2012    source источник
comment
Я не уверен, что это отличная идея. Связывание с DLL на основе cygwin также потребует от вас ссылки на cygwin. Вы должны быть в состоянии найти собственный порт librsync (скорее всего, созданный с помощью mingw), а затем вам нужен перевод заголовка.   -  person David Heffernan    schedule 17.03.2012
comment
@DavidHeffernan: rdiff.exe уже требует cygwin-1.dll, поэтому я все равно отправлю его, если буду продолжать его использовать. Кроме того, родная dll или нет, мне понадобится перевод заголовков в обоих случаях (именно это я и пытаюсь найти, но я совершенно невежественен)   -  person TheDude    schedule 17.03.2012
comment
И вас устраивают условия GPL, а это означает, что вы также будете иметь лицензию на свое приложение под GPL или что-то совместимое с GPL.   -  person David Heffernan    schedule 17.03.2012
comment
Что касается перевода заголовка, вам нужно создать файл типа Windows.pas, который определяет соответствующие записи/структуры и импортирует необходимые функции из DLL. Или найдите тот, который уже создан для Delphi.   -  person David Heffernan    schedule 17.03.2012
comment
Собственно, это одна из причин, по которой я хочу перейти на librsync (лицензия LGPL). Что касается перевода заголовков, я действительно много гуглил, но не смог найти никакого перевода на паскаль, а мои познания в C близки к нулю, чтобы сделать это самому, поэтому я спрашиваю, есть ли у кого-то делал это раньше (или может дать некоторое представление об этом)   -  person TheDude    schedule 17.03.2012
comment
Я думаю, что на веб-сайте JEDI и в блоге Руди Велтуиса есть советы по переводу заголовков. Связывание с cygwin заставляет вас кодировать под лицензией GPL. Вам нужно будет сделать то, что я сказал, и собрать с помощью mingw или другого компилятора. Cygwin вам не подходит.   -  person David Heffernan    schedule 17.03.2012
comment
Замечательно :( Спасибо за предупреждение, Дэвид! Я не знал, что мне нужно GPL для моего приложения, чтобы использовать cygwin DLL. Это еще больше усложняет мою задачу...   -  person TheDude    schedule 17.03.2012
comment
@Gdhami: вам, вероятно, следует установить msys, который наверняка скомпилирует librsync (и без зависимости от cygwin), и вы можете попробовать h2pas (из проекта freepascal), чтобы получить модуль pascal, .h довольно тривиально, он может работать.   -  person armel    schedule 19.03.2012
comment
возможный дубликат Как скомпилировать и собрать librsync с помощью Visual Studio 2010?   -  person Paul Sweatte    schedule 30.09.2015