Использование исходников FAR в стороннем продукте

Разработка Far.
2useven10
Posts: 5192
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 18 times
Been thanked: 309 times

Использование исходников FAR в стороннем продукте

Post by 2useven10 »

Latest post of the previous page:

Архив перезалит.
Кроме пропущенного файла - s[n]printf, sscanf A и W варианты.
PS: фидбек лучше сразу, пока не забыл, что там делалось.
Dec
Posts: 67
Joined: Wed 14 Jul, 2010 08:59
Been thanked: 3 times

Использование исходников FAR в стороннем продукте

Post by Dec »

2useven10,

Какая то непонятная для меня магия. Проект собирается, но для 32 битной версии при попытке LoadLibroary полученной библиотеки где внутри происходит AV, и GetLastError возвращается либо ERROR_DLL_INIT_FAILED (на Windows 10), либо ERROR_NOACCESS (на Windowx XP и Windowx 7). При этом 64 битная версия работает нормально.
User avatar
HaRT
Moderator
Posts: 10806
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 220 times
Been thanked: 357 times

Использование исходников FAR в стороннем продукте

Post by HaRT »

Dec wrote: Mon 11 Dec, 2017 18:46внутри происходит AV
Соберите с отладочной информацией, чтобы образовался одноимённый PDB-файл, подложите его рядом с его DLL, запустите в отладчике (например, Visual Studio) — велики шансы, что там будет нормальный Call Stack.
Фар есть инструмент, а не нянька. © 2009 DrKnS
Dec
Posts: 67
Joined: Wed 14 Jul, 2010 08:59
Been thanked: 3 times

Использование исходников FAR в стороннем продукте

Post by Dec »

User avatar
HaRT
Moderator
Posts: 10806
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 220 times
Been thanked: 357 times

Использование исходников FAR в стороннем продукте

Post by HaRT »

Dec wrote: Mon 11 Dec, 2017 19:23
Судя по RtlpWaitOnCriticalSection, это не тот поток. Этот поток чего-то ждёт, а упал, вероятнее всего, какой-то другой. В панельке Output нет намёка, какой именно?
Фар есть инструмент, а не нянька. © 2009 DrKnS
Dec
Posts: 67
Joined: Wed 14 Jul, 2010 08:59
Been thanked: 3 times

Использование исходников FAR в стороннем продукте

Post by Dec »

User avatar
HaRT
Moderator
Posts: 10806
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 220 times
Been thanked: 357 times

Использование исходников FAR в стороннем продукте

Post by HaRT »

Dec wrote: Mon 11 Dec, 2017 19:35
Думаю, отладку через форум пора прекращать. Нужно залезать с головой. Но я не готов.
Фар есть инструмент, а не нянька. © 2009 DrKnS
2useven10
Posts: 5192
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 18 times
Been thanked: 309 times

Использование исходников FAR в стороннем продукте

Post by 2useven10 »

Dec, Завтра попробую сделать вариант с более простой (предыдущей) версией vcrt_fix, если не поможет присылайте проект на котором тестируете, попробую посмотреть у себя.
2useven10
Posts: 5192
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 18 times
Been thanked: 309 times

Использование исходников FAR в стороннем продукте

Post by 2useven10 »

Ну LoadLibrary я и сам могу сделать... Думаю сегодня сделаю, чтобы работало, если будет полчаса свободного времени.
2useven10
Posts: 5192
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 18 times
Been thanked: 309 times

Использование исходников FAR в стороннем продукте

Post by 2useven10 »

Dec, Всё оказалось банально. Есть 2 опечатки.
Главная -- в .vcxproj надо добавить минус, чтобы получилось: threadSafeInit-
Вторая -- в .def файле пропущена ф-я apiGetPathRoot
Last edited by 2useven10 on Tue 12 Dec, 2017 14:42, edited 1 time in total.
Dec
Posts: 67
Joined: Wed 14 Jul, 2010 08:59
Been thanked: 3 times

Использование исходников FAR в стороннем продукте

Post by Dec »

2useven10, Подтверждаю, проблема исчезла. Спасибо. Буду тестировать. И правильно ли я понимаю, что ConvertPath не является потокобезопастной, в отличие от остальных функций?
2useven10
Posts: 5192
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 18 times
Been thanked: 309 times

Использование исходников FAR в стороннем продукте

Post by 2useven10 »

ConverPath в этой реализации не является.
Инициализация в FarKey... тоже может быть проблемной.
Может что-то ещё, но допилить вроде бы несложно.
Dec
Posts: 67
Joined: Wed 14 Jul, 2010 08:59
Been thanked: 3 times

Использование исходников FAR в стороннем продукте

Post by Dec »

Проблемы нет, я могу просто вызывать эти функции с защитой через критические секции.
Post Reply

Return to “Development”