purebasic.info

PureBasic forum
Текущее время: Пт авг 23, 2019 12:37 pm

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 16 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Create threadsafe exacutable: POLINK error...
СообщениеДобавлено: Чт авг 08, 2019 10:57 pm 
Не в сети
доцент

Зарегистрирован: Пт июл 09, 2010 6:17 pm
Сообщений: 61
Откуда: Ульяновск
Благодарил (а): 1 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
Здравствуйте любители PB.
Версия PB 4.41, так же использую функции Droopy v1.31.15, PBOSL 2.0 (2007/01/27), MVCOM, PureCOLOR.
Возникла необходимость вывести некоторые функции, связанные с визуализацией (прогресс, кружок загрузки/занятости, показ процентов исполнения и т.п.) в отдельгый поток. Что бы избежать зависимости от других функций и избавиться от притормаживаний и подёрганий.
Но вот незадача. Когда я ставлю галочку в настройках "создать многопоточный исполняемый файл", линкер выдаёт мне ошибку "POLINK: error: Unresolved external symbol '_PB_StringBasePosition'."\r\n"POLINK: fatal error: 1 unresolved external(s)."
Просьба посоветовать как вычислить функции, которые создают подобные ошибки (понятно, что это функции из внешних библиотек).
На данный момент в программном коде более 17 000 строк, ума не приложу, что теперь делать...


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Create threadsafe exacutable: POLINK error...
СообщениеДобавлено: Чт авг 08, 2019 11:43 pm 
Не в сети
МОДЕРАТОР
Аватар пользователя

Зарегистрирован: Пн апр 09, 2007 4:53 pm
Сообщений: 11505
Благодарил (а): 4 раз.
Поблагодарили: 469 раз.
Дмитрий писал(а):
Когда я ставлю галочку в настройках "создать многопоточный исполняемый файл"
Нужно использовать подсистему UserLibThreadSafe или UserLibUnicodeThreadSafe в зависимости от того используется юникод или нет. viewtopic.php?p=75591#p75591
viewtopic.php?p=37541#p37541

_________________
Компьютер позволяет решать все те проблемы, которые до его изобретения не существовали. :) :)


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Create threadsafe exacutable: POLINK error...
СообщениеДобавлено: Пн авг 12, 2019 10:05 pm 
Не в сети
доцент

Зарегистрирован: Пт июл 09, 2010 6:17 pm
Сообщений: 61
Откуда: Ульяновск
Благодарил (а): 1 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
Спасибо, Пётр за ответ.
Увы, но это никак не повлияло на ситуацию. Тоже самое.
Как мне теперь вычислить функции, которые не хотят компилироваться в безопасном многопотоке?


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Create threadsafe exacutable: POLINK error...
СообщениеДобавлено: Вт авг 13, 2019 6:16 am 
Не в сети
профессор

Зарегистрирован: Вт май 13, 2014 4:12 am
Сообщений: 864
Благодарил (а): 90 раз.
Поблагодарили: 26 раз.
Пункты репутации: 5
ну какой толк от этого знания?
это могут быть ошибки как в этих библиотеках, так и в самой столь древней версии, ну и чё ты с ними сделаешь?
не лучше ли найти что то 5ХХ и избавиться от этой напасти, и в нагрузку получить новые возможности, которые появляются в каждой новой версии
о том сколько придётся переделывать, скромно промолчу, самому приходилось править синтаксис


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Create threadsafe exacutable: POLINK error...
СообщениеДобавлено: Вт авг 13, 2019 11:25 am 
Не в сети
МОДЕРАТОР
Аватар пользователя

Зарегистрирован: Пн апр 09, 2007 4:53 pm
Сообщений: 11505
Благодарил (а): 4 раз.
Поблагодарили: 469 раз.
Дмитрий писал(а):
Увы, но это никак не повлияло на ситуацию.
Точно все правильно сделали?

_________________
Компьютер позволяет решать все те проблемы, которые до его изобретения не существовали. :) :)


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Create threadsafe exacutable: POLINK error...
СообщениеДобавлено: Вт авг 13, 2019 6:19 pm 
Не в сети
доцент

Зарегистрирован: Пт июл 09, 2010 6:17 pm
Сообщений: 61
Откуда: Ульяновск
Благодарил (а): 1 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
Пётр писал(а):
Дмитрий писал(а):
Увы, но это никак не повлияло на ситуацию.
Точно все правильно сделали?

Ну вроде да... Может и нет... Скриншот во вложении.


Вложения:
screen1.png [34.29 KiB]
Скачиваний: 0
Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Create threadsafe exacutable: POLINK error...
СообщениеДобавлено: Вт авг 13, 2019 6:36 pm 
Не в сети
доцент

Зарегистрирован: Пт июл 09, 2010 6:17 pm
Сообщений: 61
Откуда: Ульяновск
Благодарил (а): 1 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
newJS писал(а):
ну какой толк от этого знания?
это могут быть ошибки как в этих библиотеках, так и в самой столь древней версии, ну и чё ты с ними сделаешь?
не лучше ли найти что то 5ХХ и избавиться от этой напасти, и в нагрузку получить новые возможности, которые появляются в каждой новой версии
о том сколько придётся переделывать, скромно промолчу, самому приходилось править синтаксис

Так и тут проблема - синтаксис функций несколько различается.


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Create threadsafe exacutable: POLINK error...
СообщениеДобавлено: Вт авг 13, 2019 6:49 pm 
Не в сети
МОДЕРАТОР
Аватар пользователя

Зарегистрирован: Пн апр 09, 2007 4:53 pm
Сообщений: 11505
Благодарил (а): 4 раз.
Поблагодарили: 469 раз.
Тогда нужно проверить есть ли для всех используемых библиотек версия с поддержкой многопоточности. То есть просмотреть содержимое папки "SubSystems\UserLibThreadSafe\PureLibraries".

_________________
Компьютер позволяет решать все те проблемы, которые до его изобретения не существовали. :) :)


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Create threadsafe exacutable: POLINK error...
СообщениеДобавлено: Чт авг 15, 2019 9:03 pm 
Не в сети
доцент

Зарегистрирован: Пт июл 09, 2010 6:17 pm
Сообщений: 61
Откуда: Ульяновск
Благодарил (а): 1 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
Пётр писал(а):
Тогда нужно проверить есть ли для всех используемых библиотек версия с поддержкой многопоточности. То есть просмотреть содержимое папки "SubSystems\UserLibThreadSafe\PureLibraries".

А где мне найти файл для droopy для поддержки многопоточности? Я нашёл пока только для других версий, но возникают проблемы при использовании функций.

Droopy v1.31.15


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Create threadsafe exacutable: POLINK error...
СообщениеДобавлено: Чт авг 15, 2019 11:30 pm 
Не в сети
МОДЕРАТОР
Аватар пользователя

Зарегистрирован: Пн апр 09, 2007 4:53 pm
Сообщений: 11505
Благодарил (а): 4 раз.
Поблагодарили: 469 раз.
http://pure-basic.narod.ru/libs/Droopy_Lib_PB4.40.rar

_________________
Компьютер позволяет решать все те проблемы, которые до его изобретения не существовали. :) :)


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Create threadsafe exacutable: POLINK error...
СообщениеДобавлено: Сб авг 17, 2019 1:03 am 
Не в сети
профессор

Зарегистрирован: Пн июл 22, 2013 11:00 pm
Сообщений: 880
Благодарил (а): 2 раз.
Поблагодарили: 42 раз.
Пункты репутации: 9
Вроде было если функция из библиотеки совпадала с внутренней в программе то выдавала ошибку.
Попробуй вызываемые функции из библиотеки обазвать подругому(чёрточку там впереди поставить или ещё как). :?:


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Create threadsafe exacutable: POLINK error...
СообщениеДобавлено: Сб авг 17, 2019 6:41 am 
Не в сети
МОДЕРАТОР

Зарегистрирован: Вт дек 05, 2006 8:46 am
Сообщений: 6539
Благодарил (а): 28 раз.
Поблагодарили: 220 раз.
Пункты репутации: 57
droopy полностью с открытым кодом. Проще, чем понять суть ошибки, и полезнее для программы, заменить библиотеку на конкретные используемые процедуры прямо в своем коде.

_________________
read-only ¯\_(ツ)_/¯


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Create threadsafe exacutable: POLINK error...
СообщениеДобавлено: Сб авг 17, 2019 8:56 am 
Не в сети
профессор

Зарегистрирован: Пн июл 22, 2013 11:00 pm
Сообщений: 880
Благодарил (а): 2 раз.
Поблагодарили: 42 раз.
Пункты репутации: 9
Помню вы говорили про данные в многопоточности.
Так есть вот такое ддля отладки http://alexott.net/ru/linux/valgrind/Valgrind.html


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Create threadsafe exacutable: POLINK error...
СообщениеДобавлено: Чт авг 22, 2019 2:56 pm 
Не в сети
доцент

Зарегистрирован: Пт июл 09, 2010 6:17 pm
Сообщений: 61
Откуда: Ульяновск
Благодарил (а): 1 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
Спасибо всем за ответы.
Я скачал друпи по ссылке, предложенной Петром, скопировал оттуда файл в папку treadsafe и теперь программа компилируется.
Но! Чуда, которого я ожидал, не случилось.
Прежде всего я рассчитывал, что отделённый в поток анимированный кружок, который показывает, что идёт процесс чтения или записи в микроконтроллер чрез USB будет крутиться равномерно, без притормаживаний, не завися от других процессов программы.
Но не тут то было. Ситуация не улучшилась. Когда происходит приём/передача пакета данных от программатора через USB интерфейс, кружок притормаживает и дёргается всё-равно, даже в отдельном потоке.
Может кто подскажет, почему так?


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Create threadsafe exacutable: POLINK error...
СообщениеДобавлено: Пт авг 23, 2019 12:21 am 
Не в сети
МОДЕРАТОР
Аватар пользователя

Зарегистрирован: Пн апр 09, 2007 4:53 pm
Сообщений: 11505
Благодарил (а): 4 раз.
Поблагодарили: 469 раз.
Дмитрий писал(а):
Когда происходит приём/передача пакета данных от программатора через USB интерфейс, кружок притормаживает
Дело в коде.
Потому что притормаживаний быть не должно.

_________________
Компьютер позволяет решать все те проблемы, которые до его изобретения не существовали. :) :)


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 16 ]  На страницу 1, 2  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group (блог о phpBB)
Сборка создана CMSart Studio
Русская поддержка phpBB