Форум программистов, компьютерный форум, киберфорум
C++/CLI Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.87/15: Рейтинг темы: голосов - 15, средняя оценка - 4.87
7 / 7 / 2
Регистрация: 10.03.2013
Сообщений: 96

Через CreateThread в поток передать указатель на форму или ее элемент

27.03.2013, 20:00. Показов 3123. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Можно ли через CreateThread в поток передать указатель на форму или ее элемент(VS2010)?
C++
1
CreateThread(NULL,NULL,(LPTHREAD_START_ROUTINE)myFunc,<указатель на форму>,NULL,&thID);
Чтобы в потоке к кнопке обратиться например.

 Комментарий модератора 
Запрещено размещать тему в нескольких разделах одновременно (кросспостинг), а также дублировать тему в одном разделе.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
27.03.2013, 20:00
Ответы с готовыми решениями:

Как передать во вторую форму, указатель на элемент коллекции
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using...

Передать значени через глобальную переменную или указатель
Имеется функция, которая должна возвратить строковое значение. Сделал 2 способами. 1 - объявил глобальной переменной строку и передавал в...

Не могу передать указатель в поток
Я пишу простую утилиту для работы с VkAPI. Запрос к серверу осуществляется в отдельном потоке, который работает в двух режимах,...

4
...
 Аватар для anmartex
1910 / 1329 / 966
Регистрация: 12.02.2013
Сообщений: 2,172
29.03.2013, 04:20
Цитата Сообщение от 2e1773ce Посмотреть сообщение
Можно ли через CreateThread в поток передать указатель на форму или ее элемент(VS2010)?
Конечно можно:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
DWORD myFunc(LPVOID arg)
{
   TMyForm* form = (TMyForm*)arg;
 
   // ...
 
   return 0;
}
 
int WinMain()
{
   TMyForm* form;
   DWORD thID;
 
   // ...
 
   CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)myFunc, (LPVOID)form, 0, &thID);
 
   // ...
 
   return 0;
}
0
7 / 7 / 2
Регистрация: 10.03.2013
Сообщений: 96
29.03.2013, 12:25  [ТС]
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
namespace Server {
...
public ref class Form1 : public System::Windows::Forms::Form
    {
...
 
private: System::Void button4_Click(System::Object^  sender, System::EventArgs^  e)
         {
              CreateThread(NULL,NULL,(LPTHREAD_START_ROUTINE)listenfunc,(LPVOID)this,NULL,&thID);//тоже самое что Form1* form;        
         }
};
}
static DWORD WINAPI listenfunc(LPVOID val)
{
     //
     DWORD thID;
     CreateThread(NULL,NULL,(LPTHREAD_START_ROUTINE)dostuff,&s_Connect,NULL,&thID);
         return 0;
}
error C2440: приведение типов: невозможно преобразовать "Server::Form1 ^" в "LPVOID"
1> Нельзя преобразовать управляемый тип в неуправляемый тип
========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========
0
...
 Аватар для anmartex
1910 / 1329 / 966
Регистрация: 12.02.2013
Сообщений: 2,172
29.03.2013, 16:38
2e1773ce, так ошибка на 10-ой строчке, или всё же на 18-ой? Просто на 18-ой приведение типа не выполнено для 4-го аргумента, и кроме этого, если s_Connect указатель, то разадресация не к чему.

Не по теме:

2-ой и 5-ый аргументы функции CreateThread должны быть SIZE_T и DWORD соответственно. Т.е. для них нужно устанавливать 0, а не NULL

0
7 / 7 / 2
Регистрация: 10.03.2013
Сообщений: 96
29.03.2013, 18:19  [ТС]
он в 10 строчке указатель на форму не передает , ошибка только в ней
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
29.03.2013, 18:19
Помогаю со студенческими работами здесь

Как передать указатель в поток?
Есть GUI прога, в главном классе создаётся объект потока. Вопрос: как передать этому потоку указатель, к примеру, на label мэйнфрейма, чтоб...

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

Создать поток CreateThread()
Доброго времени суток! Необходима ваша помощь, уважаемые знатоки! Не найдя хорошей литературы (или из-за непонимания) не выходит у меня...

Как передать элемент в другой поток?
Здравствуйте, вопрос такой: на форме три TextBox'а, мне нужно создать новый поток и в нем собрать тексты с этих контролов и что то с ним...

Как передать массив через указатель?
Народ, такая проблема: при передаче в функцию массива через указатель, вся информация теряется и замещается бредом каким то, вот выдержка...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
1С: Контроль уникальности заводского номера
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью. Данные берутся из регистра сведений, по которому настроено. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
1С: Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию группы. . .
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
1С: Программный отбор элементов справочника по значению перечисления
Maks 21.03.2026
Установка программного отбора элементов справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит значение перечислений. / / Событие "НачалоВыбора" реквизита на форме. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru