Классы в динамических библиотеках. |
Здравствуйте, гость ( Вход | Регистрация )
Классы в динамических библиотеках. |
MishaUA |
3.4.2014, 17:48
Сообщение
#1
|
Участник Группа: Участник Сообщений: 185 Регистрация: 28.4.2013 Пользователь №: 3810 Спасибо сказали: 13 раз(а) Репутация: 0 |
Добрый день! Настал час, когда пришлось писать динамические библиотеки.
В проге через QLibrary подключается библиотека и далее используются ее функции. В коде самой dll содержится класс, методы которого нужно вызывать, но в отличии от статической библиотеки, в динамической методы вызывать нельзя, только функции, Я поступил следующим образом:
Является ли такой вариант правильным, или посоветуете что то получше? И еще интересует, как с библиотеки можно передать сигнал в программу? |
|
|
Litkevich Yuriy |
8.4.2014, 18:27
Сообщение
#2
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
Тут правильнее речь вести об объекте (экземпляре класса). В каком потоке ты его создаёшь, в том он и будет жить.
|
|
|
Iron Bug |
8.4.2014, 20:34
Сообщение
#3
|
Профессионал Группа: Модератор Сообщений: 1611 Регистрация: 6.2.2009 Из: Yekaterinburg Пользователь №: 533 Спасибо сказали: 219 раз(а) Репутация: 12 |
Тут правильнее речь вести об объекте (экземпляре класса). В каком потоке ты его создаёшь, в том он и будет жить. не совсем так. память в куче у потоков общая. а стек у каждого свой. как бы явно к локальным переменным потока доступа нет, но в линюксе если взять адрес, то пока переменная валидна, она будет доступна по этому адресу во всех других потоках (см документацию на GCC, статью о TLS). в венде чуть сложнее - там индексы областей TLS. но есть функция TlsSetValue и другие функции из этой же серии (также гуглить про TLS, если интересно). Сообщение отредактировал Iron Bug - 8.4.2014, 20:56 |
|
|
Текстовая версия | Сейчас: 15.1.2025, 16:02 |