Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
NewNoob
6 / 10 / 2
Регистрация: 29.05.2015
Сообщений: 634
Завершенные тесты: 1
#1

Странная ошибка volatile int count - count не является однозначным. Ещё про CloseHandle - для чего это? - C++

02.07.2017, 23:13. Просмотров 326. Ответов 8
Метки нет (Все метки)

Странная ошибка volatile int count - count не является однозначным. Ещё про CloseHandle - для чего это?
КОд:
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#include "stdafx.h"
#include <iostream>
#include <conio.h>
#include <Windows.h>
 
#define get_pause() cout << "Press any key to quit" << endl; getch()
 
using namespace std;
 
volatile int count = 0;
 
void thread_f()
{
    for (;;)
    {
        ++count;
        Sleep(100);
    }
}
 
int main()
{
    HANDLE hThread;
    DWORD IDThread;
    char c;
 
    hThread = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)thread_f, NULL, 0, &IDThread);
 
    if (hThread == NULL)
    {
        return GetLastError();
    }
 
    for (;;)
    {
        cout << "Input y to quit thread:";
        cin >> c;
 
        if (c == 'y')
        {
            cout << "count = " << count << endl;
        }
 
        if (c == 'n')
            break;
    }
 
    TerminateThread(hThread, 10);
    CloseHandle(hThread);
 
    get_pause();
    return 0;
}

http://www.cyberforum.ru/cpp-beginners/thread1957988.html
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.07.2017, 23:13
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Странная ошибка volatile int count - count не является однозначным. Ещё про CloseHandle - для чего это? (C++):

Void send(int* to, int* from, int count)
Здравствуйте, подскажите пожалуйста что делает этот код. Спасибо. void...

Для чего нужно писать в int main() в скобках всякие args потом объявлять переменные, и прочее. Для чего если можно в сборках это все обьявлять.
Для чего нужно писать в int main() в скобках всякие args потом объявлять...

Создайте класс Тест, содержащий две закрытые переменные типа int с именами count и max

Ошибка в count<<x;
Начал работать с С++ и столкнулся с Туевой Хучей проблем, основная из них...

Count для пользовательского класса строки MyString
Хочу реализовать поиск существующих элементов вектора,но столкнулся с проблемой...

8
gray_fox
What a waste!
1552 / 1257 / 165
Регистрация: 21.04.2012
Сообщений: 2,634
Завершенные тесты: 3
02.07.2017, 23:29 #2
Цитата Сообщение от NewNoob Посмотреть сообщение
count не является однозначным.
Значит где-то ранее уже определён идентификатор count (в глобальной области видимости), поэтому и "неоднозначность". Это может быть std::count (т.к. тут namespace std инжектируется в глобальное пространство имён), или что-то ещё (из Windows.h, например - там много глобальных идентификаторов).
1
Убежденный
Ушел с форума
Эксперт С++
15941 / 7252 / 1176
Регистрация: 02.05.2013
Сообщений: 11,637
Записей в блоге: 1
Завершенные тесты: 1
02.07.2017, 23:32 #3
Цитата Сообщение от NewNoob Посмотреть сообщение
TerminateThread(hThread, 10);
Крайне не рекомендуется так завершать потоки.
После этой строки вообще никаких гарантий, что программа завершится
нормально, а не зависнет или не вылетит с каким-нибудь исключением.
0
NewNoob
6 / 10 / 2
Регистрация: 29.05.2015
Сообщений: 634
Завершенные тесты: 1
03.07.2017, 01:59  [ТС] #4
Убежденный, а что значит закрыть дескриптор? Я с этими названиями уже запутался. HANDLE - дескриптор? Это то,что нумерует потоки/процессы,да? Или там ещё всякие ресурсы задерживаются? Просто другие фу-ии закрытия потоков,вроде,ExitThread там не показывались. Там просто сказано было,что эти сами всё освобождают.
0
TheCalligrapher
С чаем беда...
Эксперт CЭксперт С++
4372 / 2347 / 654
Регистрация: 18.10.2014
Сообщений: 3,996
03.07.2017, 02:43 #5
Цитата Сообщение от NewNoob Посмотреть сообщение
Странная ошибка volatile int count - count не является однозначным.
Конфликт с std::count. Прекратите злоупотреблять using namespace std;
0
NewNoob
6 / 10 / 2
Регистрация: 29.05.2015
Сообщений: 634
Завершенные тесты: 1
03.07.2017, 02:46  [ТС] #6
TheCalligrapher, у меня cout без using namespace std не работает
0
TheCalligrapher
С чаем беда...
Эксперт CЭксперт С++
4372 / 2347 / 654
Регистрация: 18.10.2014
Сообщений: 3,996
03.07.2017, 02:51 #7
Цитата Сообщение от NewNoob Посмотреть сообщение
у меня cout без using namespace std не работает
Что значит "не работает"?

Либо не ленитесь у себя в коде писать всегда std::cout, std::endl и т.д.

Либо в начале программы вместо огульного using namespace std; аккуратно делайте индивидуальные using std::cout; using std::endl; и т.д.

---

Ну или если вам так дорог этот using namespace std;, то тогда к "своему" count везде обращайтесь именно как к ::count.
0
gray_fox
What a waste!
1552 / 1257 / 165
Регистрация: 21.04.2012
Сообщений: 2,634
Завершенные тесты: 3
03.07.2017, 03:10 #8
Цитата Сообщение от NewNoob Посмотреть сообщение
у меня cout без using namespace std не работает
Без using namespace std; надо явно использовать пространство имён std: std::cout.

Добавлено через 6 минут
Используя using namespace <namespace>, вы включаете все идентификаторы из пространства имён <namespace> в текущее. Поэтому и могут возникнуть неоднозначности во время компиляции - некоторые иэ идентификаторов из разных пространств имён могут совпасть.

Добавлено через 7 минут
Так что лучше, как уже написали, не использовать директиву using namespace, если нет понимания того, что она делает.
0
NewNoob
6 / 10 / 2
Регистрация: 29.05.2015
Сообщений: 634
Завершенные тесты: 1
03.07.2017, 14:15  [ТС] #9
TheCalligrapher, а про CloseHandle - для чего? Для чего закрывать хэндл - дескриптор. На нём висят ресурсы после того,как я убью поток или что?
0
03.07.2017, 14:15
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.07.2017, 14:15
Привет! Вот еще темы с решениями:

Ошибка MySQL error: Column count doesn't match value count at row 1
Подскажите, пожалуйста где тут ошибка? Вылазит ошибка: MySQL error: Column...

Ошибка в запросе: Column count doesn't match value count at row 1
Здравствуйте, я новичок в изучении php и sql. При добавлении новой книги в БД...

Почему dataGridView1.Rows.Count, но textbxox1.Lines.Count() ?
Почему в одном случае нужно писать круглые скобки, а в другие не нужно?

Обход COUNT(.)/COUNT(*) Делитель равен нулю
Задание: Список подразделений (id и название), в которых более половины...


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

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

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