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

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

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

Post by 2useven10 » Mon 11 Dec, 2017 10:54

Latest post of the previous page:

Архив перезалит.
Кроме пропущенного файла - s[n]printf, sscanf A и W варианты.
PS: фидбек лучше сразу, пока не забыл, что там делалось.

Dec
Posts: 66
Joined: Wed 14 Jul, 2010 08:59
Been thanked: 3 times

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

Post by Dec » Mon 11 Dec, 2017 18:46

2useven10,

Какая то непонятная для меня магия. Проект собирается, но для 32 битной версии при попытке LoadLibroary полученной библиотеки где внутри происходит AV, и GetLastError возвращается либо ERROR_DLL_INIT_FAILED (на Windows 10), либо ERROR_NOACCESS (на Windowx XP и Windowx 7). При этом 64 битная версия работает нормально.

User avatar
HaRT
Moderator
Posts: 8416
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 73 times
Been thanked: 127 times

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

Post by HaRT » Mon 11 Dec, 2017 19:00

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

Dec
Posts: 66
Joined: Wed 14 Jul, 2010 08:59
Been thanked: 3 times

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

Post by Dec » Mon 11 Dec, 2017 19:23


User avatar
HaRT
Moderator
Posts: 8416
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 73 times
Been thanked: 127 times

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

Post by HaRT » Mon 11 Dec, 2017 19:27

Dec wrote:
Mon 11 Dec, 2017 19:23
Судя по RtlpWaitOnCriticalSection, это не тот поток. Этот поток чего-то ждёт, а упал, вероятнее всего, какой-то другой. В панельке Output нет намёка, какой именно?
Фар есть инструмент, а не нянька. © 2009 DrKnS

Dec
Posts: 66
Joined: Wed 14 Jul, 2010 08:59
Been thanked: 3 times

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

Post by Dec » Mon 11 Dec, 2017 19:35


User avatar
HaRT
Moderator
Posts: 8416
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 73 times
Been thanked: 127 times

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

Post by HaRT » Mon 11 Dec, 2017 21:11

Dec wrote:
Mon 11 Dec, 2017 19:35
Думаю, отладку через форум пора прекращать. Нужно залезать с головой. Но я не готов.
Фар есть инструмент, а не нянька. © 2009 DrKnS

2useven10
Posts: 3520
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 3 times
Been thanked: 137 times

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

Post by 2useven10 » Mon 11 Dec, 2017 23:04

Dec, Завтра попробую сделать вариант с более простой (предыдущей) версией vcrt_fix, если не поможет присылайте проект на котором тестируете, попробую посмотреть у себя.

2useven10
Posts: 3520
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 3 times
Been thanked: 137 times

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

Post by 2useven10 » Tue 12 Dec, 2017 06:30

Ну LoadLibrary я и сам могу сделать... Думаю сегодня сделаю, чтобы работало, если будет полчаса свободного времени.

2useven10
Posts: 3520
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 3 times
Been thanked: 137 times

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

Post by 2useven10 » Tue 12 Dec, 2017 14:41

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

Dec
Posts: 66
Joined: Wed 14 Jul, 2010 08:59
Been thanked: 3 times

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

Post by Dec » Wed 13 Dec, 2017 21:17

2useven10, Подтверждаю, проблема исчезла. Спасибо. Буду тестировать. И правильно ли я понимаю, что ConvertPath не является потокобезопастной, в отличие от остальных функций?

2useven10
Posts: 3520
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 3 times
Been thanked: 137 times

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

Post by 2useven10 » Wed 13 Dec, 2017 21:29

ConverPath в этой реализации не является.
Инициализация в FarKey... тоже может быть проблемной.
Может что-то ещё, но допилить вроде бы несложно.

Dec
Posts: 66
Joined: Wed 14 Jul, 2010 08:59
Been thanked: 3 times

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

Post by Dec » Wed 13 Dec, 2017 21:37

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

Post Reply

Return to “Development”