Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Данила915
1 / 1 / 0
Регистрация: 13.01.2016
Сообщений: 9
#1

Thread C2893. Хотя аргументов у вызываемой функции нет - C++

22.01.2016, 19:32. Просмотров 398. Ответов 1

Это код, где вызывается thread:
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
void CChatClientDlg::OnBnClickedBtnSendMessage()
{
    if (client.isConnected()) {
        UpdateData(true);
        char mes[255];
        CStringA mesA(m_sMessage);
        strcpy(mes, (const char *)mesA);
        client.mwrite(mes);
    }
    else {
        MessageBox(L"Вы не подключены к серверу!", L"Подключение", MB_ICONEXCLAMATION);
        connectpDlg dlg;
        if (IDOK == dlg.DoModal()) {
            char ip[255];
            CStringA ipA(dlg.m_sIp);
            strcpy(ip, (const char *)ipA);
            char nick[255];
            ipA = dlg.m_sNickname;
            strcpy(nick, (const char *)ipA);
            if (client.init(ip, nick) != client.INIT_OK) {
                MessageBox(L"Не удалось подключиться", L"Ошибка", MB_ICONERROR);
            }
            else {
                thread listen(&CChatClientDlg::myListen); //<- Здесь выдает ошибку
            }
        }
    }
}
Сама функция:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
void CChatClientDlg::myListen()
{
    char s[255];
    CString mes;
    while (true) {
        if (client.mlisten(s) == client.LISTEN_OK) {
            mes = s;
            ListMessages.AddString(mes);
        }
        else {
            client.finish();
            return;
        }
    }
}
Код ошибки:
Кликните здесь для просмотра всего текста
1>c:\program files (x86)\microsoft visual studio 14.0\vc\include\thr\xthread(238): error C2893: Сбой при специализации функции-шаблона "unknown-type std::invoke(_Callable &&,_Types &&...)"
1> c:\program files (x86)\microsoft visual studio 14.0\vc\include\thr\xthread(238): note: Со следующими аргументами шаблона:
1> c:\program files (x86)\microsoft visual studio 14.0\vc\include\thr\xthread(238): note: "_Callable=void (__thiscall CChatClientDlg::* )(void)"
1> c:\program files (x86)\microsoft visual studio 14.0\vc\include\thr\xthread(238): note: "_Types={int}"
1> c:\program files (x86)\microsoft visual studio 14.0\vc\include\thr\xthread(247): note: см. ссылку на создание экземпляров функции шаблон при компиляции "void std::_LaunchPad<_Target>::_Execute<0,1>(std::tuple<void (__thiscall CChatClientDlg::* )(void),int> &,std::integer_sequence<_Ty,0,1>)"
1> with
1> [
1> _Target=std::unique_ptr<std::tuple<void (__thiscall CChatClientDlg::* )(void),int>,std::default_delete<std::tuple<void (__thiscall CChatClientDlg::* )(void),int>>>,
1> _Ty=size_t
1> ]
1> c:\program files (x86)\microsoft visual studio 14.0\vc\include\thr\xthread(247): note: см. ссылку на создание экземпляров функции шаблон при компиляции "void std::_LaunchPad<_Target>::_Execute<0,1>(std::tuple<void (__thiscall CChatClientDlg::* )(void),int> &,std::integer_sequence<_Ty,0,1>)"
1> with
1> [
1> _Target=std::unique_ptr<std::tuple<void (__thiscall CChatClientDlg::* )(void),int>,std::default_delete<std::tuple<void (__thiscall CChatClientDlg::* )(void),int>>>,
1> _Ty=size_t
1> ]
1> c:\program files (x86)\microsoft visual studio 14.0\vc\include\thr\xthread(242): note: при компиляции функции-члена "<Нет данных>" класса <Нет данных>
1> c:\program files (x86)\microsoft visual studio 14.0\vc\include\thr\xthread(230): note: см. ссылку на создание экземпляров функции шаблон при компиляции "void std::_LaunchPad<_Target>::_Run(std::_LaunchPad<_Target> *) noexcept"
1> with
1> [
1> _Target=std::unique_ptr<std::tuple<void (__thiscall CChatClientDlg::* )(void),int>,std::default_delete<std::tuple<void (__thiscall CChatClientDlg::* )(void),int>>>
1> ]
1> c:\program files (x86)\microsoft visual studio 14.0\vc\include\thr\xthread(256): note: см. ссылку на создание экземпляров класса шаблон при компиляции "std::_LaunchPad<_Target>"
1> with
1> [
1> _Target=std::unique_ptr<std::tuple<void (__thiscall CChatClientDlg::* )(void),int>,std::default_delete<std::tuple<void (__thiscall CChatClientDlg::* )(void),int>>>
1> ]
1> c:\program files (x86)\microsoft visual studio 14.0\vc\include\thread(52): note: см. ссылку на создание экземпляров функции шаблон при компиляции "void std::_Launch<std::unique_ptr<std::tuple<void (__thiscall CChatClientDlg::* )(void),int>,std::default_delete<std::tuple<void (__thiscall CChatClientDlg::* )(void),int>>>>(_Thrd_t *,_Target &&)"
1> with
1> [
1> _Target=std::unique_ptr<std::tuple<void (__thiscall CChatClientDlg::* )(void),int>,std::default_delete<std::tuple<void (__thiscall CChatClientDlg::* )(void),int>>>
1> ]
1> c:\users\kp0hy\onedrive\документы\visual studio 2015\projects\клиент чатика\клиент чатика\cchatclientdlg.cpp(200): note: см. ссылку на создание экземпляров функции шаблон при компиляции "std::thread::thread<void(__thiscall CChatClientDlg::* )(void),int,void>(_Fn &&,int &&)"
1> with
1> [
1> _Fn=void (__thiscall CChatClientDlg::* )(void)
1> ]
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.01.2016, 19:32
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Thread C2893. Хотя аргументов у вызываемой функции нет (C++):

Есть функция с кучей аргументов, как её вызвать в другой функции (если половины аргументов у меня нет)? - C++
Я конечно, понимаю, что на такие вопросы отвечают &quot;почитай книжку&quot;. Я читала, честное слово:) Конкретно. Есть функция void jacobi (...

Нет перегруженной функции, принимающей 2 аргументов - C++
Оговорюсь сразу, что я новичок в программировании, надеюсь на Вашу помощь. Базовый класс: Контейнер(название и кол-во элементов) ...

нет перегруженной функции, принимающей 3 аргументов - C++
ребят, в чем может быть ошибка, не подскажите?? int Quick() { for(int stolbec=0;stolbec!=ColNumber ;stolbec++) { ...

error C2661: pow: нет перегруженной функции, принимающей 1 аргументов - C++
Здравствуйте, уважаемые посетители сего форума. Набирал лабу, столкнулся вот с такой проблемой. Скриншот и код прилагаю: #include...

Некорректная работа повторно вызываемой функции - C++
wstring fdirection(void) { wcout &lt;&lt; L&quot;Введите путь к файлу, который хотите зашифровать (файл должен существовать): &quot; &lt;&lt; std::endl; ...

Ошибка с массивами, хотя формально её нет (похожи ли массивы или нет?) - C++
Всем доброго времени суток!) В общем имею такую великолепную чтуку, она должна говорить мне, похожи ли массивы или нет, массив должен...

1
Croessmah
Эксперт CЭксперт С++
13419 / 7573 / 855
Регистрация: 27.09.2012
Сообщений: 18,646
Записей в блоге: 3
Завершенные тесты: 1
22.01.2016, 19:36 #2
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
CChatClientDlg это класс?
Если да, то значит сие
C++
1
void CChatClientDlg::myListen()
для вызова потребует еще указатель на объект для которого оное вызывается.
C++
1
thread listen(&CChatClientDlg::myListen);//Здесь указание функции-члена, но с каким объектом будем работать?
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.01.2016, 19:36
Привет! Вот еще темы с ответами:

Thread: можно ли делать так, как в заданном коде и если нет, то почему? - C++
Всем привет. можно ли так делать? Если нет то почему. Спасибо. #include &lt;iostream&gt; #include &lt;thread&gt; #include &lt;chrono&gt; class...

Ошибка в шаблоне функции: "Отсутствуют экземпляры шаблон функции, соответствующие списку аргументов" - C++
#include &lt;iostream&gt; #include &lt;iterator&gt; #include &lt;map&gt; #include &lt;Windows.h&gt; #include &lt;functional&gt; #include &lt;string&gt; #include...

Передача аргументов в функции - C++
Ребят, никогда раньше не задумывался каким же образом передаются аргументы. Сейчас же дошел до передачи аргументов через указатель и...

Ошибка аргументов функции - C++
#include &lt;iostream&gt; #include &lt;stdio.h&gt; #include &lt;math.h&gt; #include &lt;conio.h&gt; using std::cout; using std::cin; using...


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

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

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