Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
2 / 2 / 1
Регистрация: 08.11.2014
Сообщений: 25

Tthread доступ к переменным

29.03.2017, 09:57. Показов 654. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, подскажите, пожалуйста, как использовать объявленную в потоке переменную в другом модуле?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
29.03.2017, 09:57
Ответы с готовыми решениями:

TThread, TThread, TThread .......... %)
помогите, если не затруднит как можно динамически создать поток и передать ему выполнение чего-либо например:...

Потоки(TThread)
Здраствуйте. У меня возникла следующая проблема, начал изучать потоки,когда создаю три потока, третий должен запуститься после окочания...

TThread и ShowMessage
Пискал ответ на проблему в гугле - вижу, что проблема довольно масштабная, т.к. у многих возникают вопросы. Единственная проблема - почти...

8
 Аватар для Dinkin
783 / 556 / 136
Регистрация: 31.05.2013
Сообщений: 3,154
Записей в блоге: 3
29.03.2017, 10:12
Доброго.
Объявить перемененную в паблике потока.
0
2 / 2 / 1
Регистрация: 08.11.2014
Сообщений: 25
29.03.2017, 10:23  [ТС]
Объявляю, пытаюсь обратиться - получаю ошибку
[BCC32 Error] Unit4.cpp(42): E2451 Undefined symbol 'pFunc_LoadText'

когда объявляю переменную глобально в потоке, а в модуле использую extern работает не корректно, складывается впечатление, что в переменную ничего не записывается
0
 Аватар для Dinkin
783 / 556 / 136
Регистрация: 31.05.2013
Сообщений: 3,154
Записей в блоге: 3
29.03.2017, 10:26
Как создаете поток?
Видят ли обоюдно поток и форма друг друга через форму alt+f11?
Зачем глобально, объявите в паблике ее.
1
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
29.03.2017, 10:35
Цитата Сообщение от Просто Ромашка Посмотреть сообщение
объявленную в потоке переменную
Цитата Сообщение от Просто Ромашка Посмотреть сообщение
когда объявляю переменную глобально в потоке
Переменные объявляются не в потоке, а в файле с исходниками. Лучше покажи исходник, потому что своими словами ты объясняешь неправильно
1
2 / 2 / 1
Регистрация: 08.11.2014
Сообщений: 25
29.03.2017, 10:52  [ТС]
Я поняла, спасибо
объясняю не правильно в силу некомпетентности)
посоветуете литературу?
0
 Аватар для Dinkin
783 / 556 / 136
Регистрация: 31.05.2013
Сообщений: 3,154
Записей в блоге: 3
29.03.2017, 11:01
Код покажите как создаете поток?
0
2 / 2 / 1
Регистрация: 08.11.2014
Сообщений: 25
29.03.2017, 11:17  [ТС]
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
void __fastcall TMyThread::Execute()
{
    //---- Place thread code here ----
 
    Form1->hLibHandle = LoadLibrary("SynAn_IAI.dll"); // подключаем библиотеку
    memset(Form1->buffer,0,2000); // очищаем буфер
    GetCurrentDirectory(sizeof(Form1->buffer),Form1->buffer);// узнаем текущую дерикторию
 
    if ( Form1->hLibHandle )
     {
      // Пытаемся инициализировать библиотеку
 
        Form1->pFunc = (pfivFunc_ch)GetProcAddress(Form1->hLibHandle,"InitLib");
       if ( Form1->pFunc )
       {
       if( (*pFunc)(Form1->buffer)==0)
       Form1->StatusBar1->Panels->Items[0]->Text = "Загрузили";
 
       }
 
 
       ////  загружаем функцию загрузки текста
       //pfivFunc_ch
        Form1->pFunc_LoadText = (pfivFunc_ch)GetProcAddress(Form1->hLibHandle,"LoadText");
 
       ////
      // pfivFunc_void
      Form1-> pFunc_GrantMa = (pfivFunc_void)GetProcAddress(Form1->hLibHandle,"GrantMa");
 
       ////
      // pfivFunc_ch
       Form1->pFunc_SaveTxtBin = (pfivFunc_ch)GetProcAddress(Form1->hLibHandle,"SaveTxtBin");
 
     }
   }
теперь проблема в этой строке
C++
1
if( (*pFunc)(Form1->buffer)==0)
попробовала
C++
1
if( Form1->(*pFunc)(Form1->buffer)==0)
и
C++
1
if( Form1.(*pFunc)(Form1->buffer)==0)
не работает

Добавлено через 7 минут
а если написать вот так
C++
1
 Form1->pFunc
будет ли тот эффект который нужен...
0
 Аватар для Dinkin
783 / 556 / 136
Регистрация: 31.05.2013
Сообщений: 3,154
Записей в блоге: 3
29.03.2017, 11:41
Просто Ромашка, такое дело...с потоками так не работают. Все функции с главной формой должны быть через синхронизацию.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
29.03.2017, 11:41
Помогаю со студенческими работами здесь

Клас TThread
Нужно написать програму для реализации потоков через клас TThread. Когда я создаю этот клас, билдер автоматически создает конструктор и...

Несколько модулей TThread
Доброго времени суток! Подскажите, допускается ли создание несколько модулей TThread, а так же параллельная работа их методов Execute ? ...

TThread и копирование файлов
Добрый день спецы. Пишу достаточно сложную программу, точнее оптимизирую то, что было написано ранее. Необходимо создать поток который...

TThread,Terminate() и Terminated
Как можно проверить остановлен ли поток и как остановить поток в версиях Builder-a начиная с 2009, версии ведь свойства Terminated нет...

Не работает Synchronize в TThread
Доброго времени суток! .h class TMyThread : public TThread { private: void __fastcall send_mess(); protected: void...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru