sts писал(а):а реально в libapr-1.dll есть только '_apr_hash_this@16'
'apr_hash_this' вообще нету в дллках
Это не Subversion, это 
APR...
_apr_hash_this@16 - это декорированный вариант apr_hash_this
Похоже в винде вместо cdecl нужно указывать stdcall
Т.е.
- Код: Выделить всё
- procedure apr_hash_this(hi: apr_hash_index_p; out key: pointer; out klen: apr_ssize_t; out val: pointer); stdcall;
 external libapr name 'apr_hash_this';
Попробуй в модулях apr из mxlib заменить все вхождения cdecl на stdcall
Добавлено спустя 6 минут 26 секунд:sts писал(а):А где можно почитать доку на этот СВН АПИ?
Я изучал заголовки из исходников Subversion и собственно исходники. Простые примеры можешь посмотреть в mxlib, да и среди исходников subversion тоже было несколько примеров. Можешь ещё глянуть там же на Шаманграде mxcmd - там пример того, как выводить окошки с запросом логина/пароля когда требуется авторизация.
sts писал(а):коекак библиотека завелась
Поделись опытом, я подкорректирую mxlib, чтобы меньше мучались
Добавлено спустя 19 минут 52 секунды:sts писал(а):теперь стоит вопрос а что собствено надо вызвать и в каком порядке чтоб получить список измененных файлов по номеру ревизии
1. иницаилизация контекста (см. примеры)
2. получение данных, в твоем случае нужно использовать функцию svn_client_log*, я думаю пока стоит ориентироваться на svn_client_log3 (subversion 1.4) - её будет достаточно.
3. финализация (см. примеры)
Практически все функции используют функции обратного вызова, которые принимает информацию через аргументы и svn_client_log* одна из них.
Например, для svn_client_status*
- Код: Выделить всё
- /**
 * Функция обратного вызова для svn_client_status2() для метода svn::status(), который узнает статус файла в рабочей копии
 */
 // Статитческий метод! В Pascal нет нормальной поддержки статических методов,
 // потому нужно будет делать имено функцию.
 void svn::status_func2(void *baton, const char *, svn_wc_status2_t *status)
 {
 svn *self = static_cast<svn *>(baton); // это указатель на класс-обретку
 // структура status описывает статус файла
 if ( status->text_status == svn_wc_status_normal && status->prop_status != svn_wc_status_normal )
 {
 // записываем статус в поле объекта нашей обертки
 self->fStatus = svn_wc_status_modified;
 }
 else
 {
 self->fStatus = status->text_status;
 }
 }
 
И собственно реализация svn::status();
- Код: Выделить всё
- /**
 * Вернуть статус файла
 * @param path путь к файлу/каталогу
 * @return статус файла/каталога
 */
 svn_wc_status_kind svn::status(const QString &path)
 {
 // в fStatus будет записан статус файла, none - типа нет файла
 fStatus = svn_wc_status_none;
 // собственно вызов svn_client_status
 svn_client_status2(NULL, path.toUtf8().data(), NULL, svn::status_func2, this, FALSE, TRUE, FALSE, TRUE, FALSE, ctx, pool);
 // в fStatus был записан статус файла, мы его и вернем
 return fStatus;
 }
 
В твоем случае я тоже посоветовал бы сделать класс (или объект) обёртку