Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
2 / 1 / 2
Регистрация: 07.02.2014
Сообщений: 245
1

Создание нового потока

29.09.2015, 22:06. Просмотров 1849. Ответов 11
Метки нет (Все метки)

Вот тут выдаёт ошибку.
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
36
   DWORD thID;
      CreateThread(NULL,NULL,SexToClient,
              &client_socket,NULL,&thID);
    }
    return 0;
  }
 
  // Эта функция создается в отдельном потоке и
  // обсуживает очередного подключившегося клиента
  // независимо от остальных
  DWORD WINAPI SexToClient(LPVOID client_socket)
  {
    SOCKET my_sock;
    my_sock=((SOCKET *) client_socket)[0];
    char buff[20*1024];
    #define sHELLO "Hello, Sailor\r\n"
 
    // отправляем клиенту приветствие 
    send(my_sock,sHELLO,sizeof(sHELLO),0);
 
    // цикл эхо-сервера: прием строки от клиента и
    // возвращение ее клиенту
    int bytes_recv;
    while( (bytes_recv=recv(my_sock,&buff[0],sizeof(buff),0)) && (bytes_recv !=SOCKET_ERROR))
      send(my_sock,&buff[0],bytes_recv,0);
 
    // если мы здесь, то произошел выход из цикла по
    // причине возращения функцией recv ошибки –
    // соединение клиентом разорвано
    nclients--; // уменьшаем счетчик активных клиентов
    printf("-disconnect\n"); PRINTNUSERS
 
    // закрываем сокет
    closesocket(my_sock);
    return 0;
  }
C++
1
2
1>c:\users\admin26\documents\visual studio 2010\projects\serverc++\visualserverc++\serv.h(129): error C3867: serv::SexToClient: в вызове функции отсутствует список аргументов; используйте "&serv::SexToClient" для создания указателя на член
1>c:\users\admin26\documents\visual studio 2010\projects\serverc++\visualserverc++\serv.h(138): error C3641: serv::SexToClient: недопустимое соглашение вызова "__stdcall " для функции, скомпилированной с параметрами /clr:pure или /clr:safe
Добавлено через 1 час 11 минут
Кто нибудь поможет?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.09.2015, 22:06
Ответы с готовыми решениями:

Создание нового потока
Люди, помогите создать отдельный поток, чтоб с ним можно было потом работать. Я в потоках = NULL...

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

Ошибка доступа при работе нового потока с формой
Доброго времени суток, дорогие форумчане! Помогите устранить проблему: при запуске потока, который...

Создание нового потока из работающего потока
насколько это корректно? вроде всё нормально работает и именно так как задумывалось, но вопрос...

11
6914 / 5979 / 2709
Регистрация: 14.04.2014
Сообщений: 25,504
29.09.2015, 22:48 2
Ты нужное место показал? serv.h там указан. И почему CLI? Это не чистый C++?
0
2700 / 1870 / 553
Регистрация: 05.06.2014
Сообщений: 5,420
29.09.2015, 22:53 3
1) serv::SexToClient? Это метод класса? static в начало объявления подпишите.
2) Откройте для себя std::thread и забудьте о CreateThread как о страшном сне.
0
2 / 1 / 2
Регистрация: 07.02.2014
Сообщений: 245
29.09.2015, 23:22  [ТС] 4
Цитата Сообщение от Renji Посмотреть сообщение
2) Откройте для себя std::thread и забудьте о CreateThread как о страшном сне.
Попробовал сделать поток таким образом, но:
C++
1
fatal error C1083: Не удается открыть файл включение: thread.h: No such file or directory
0
2700 / 1870 / 553
Регистрация: 05.06.2014
Сообщений: 5,420
29.09.2015, 23:26 5
Цитата Сообщение от Armando111 Посмотреть сообщение
Попробовал сделать поток таким образом, но:
#include<thread> без .h. ".h" в конце имен стандартных заголовков не используется уже больше десятка лет.
0
2 / 1 / 2
Регистрация: 07.02.2014
Сообщений: 245
29.09.2015, 23:39  [ТС] 6
Цитата Сообщение от Renji Посмотреть сообщение
#include<thread> без .h. ".h" в конце имен стандартных заголовков не используется уже больше десятка лет.
Это понятно... но даже так, ошибка так же самая)
0
2700 / 1870 / 553
Регистрация: 05.06.2014
Сообщений: 5,420
29.09.2015, 23:51 7
Цитата Сообщение от Armando111 Посмотреть сообщение
Это понятно... но даже так, ошибка так же самая)
А, все, понял. У вас visual studio 2010, а std::thread это фишка C++11 принятого в 2011 году. Компилятор обновите.
0
2 / 1 / 2
Регистрация: 07.02.2014
Сообщений: 245
30.09.2015, 12:02  [ТС] 8
Цитата Сообщение от nmcf Посмотреть сообщение
Ты нужное место показал? serv.h там указан. И почему CLI? Это не чистый C++?
Да это конец файла serv.h
Где ты увидел CLI?
Не знаю)
0
6914 / 5979 / 2709
Регистрация: 14.04.2014
Сообщений: 25,504
30.09.2015, 12:21 9
C++
1
2
недопустимое соглашение вызова "__stdcall " для функции,
скомпилированной с параметрами /clr:pure или /clr:safe
0
2401 / 1805 / 395
Регистрация: 15.12.2013
Сообщений: 7,719
30.09.2015, 13:02 10
CLI не поддерживает std::thread.
0
2 / 1 / 2
Регистрация: 07.02.2014
Сообщений: 245
30.09.2015, 13:02  [ТС] 11
Цитата Сообщение от nmcf Посмотреть сообщение
недопустимое соглашение вызова "__stdcall " для функции,
скомпилированной с параметрами /clrure или /clr:safe

И что мне с этим делать?
0
2401 / 1805 / 395
Регистрация: 15.12.2013
Сообщений: 7,719
30.09.2015, 13:05 12
Цитата Сообщение от Armando111 Посмотреть сообщение
И что мне с этим делать?
Либо отказаться от C++/CLI либо от использования std::thread.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.09.2015, 13:05

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Создание нового потока Thread
Привет всем. Пытаюсь по клику на кнопку создать новый поток и чтобы внутри него выполнился метод...

Параметры для нового потока
Здравствуйте! Подскажите как передать в новый поток (Thread) несколько параметров? Неужели нужно...

Запись текста в метку из нового потока
Доброй ночи! Есть новый поток в BackgroundWorker и есть Label на форме. Использую такой код: ...

NullPointerException при создании нового потока
Привет всем! Пытаюсь создать новый поток: создаю экземпляр класса, который реализует интерфейс...

Простой пример создания нового потока с интерфейсом Runnable
public class theThread implements Runnable{ Thread t; theThread(){ t = new Thread(this,...

Привести пример программы создания нового файла и связывания с ним файлового потока
using System; using System.Text; using System.IO; //для работы с файловым вводом-выводом ...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.