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

Оболочка для потков-методов классов - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Программа для ввода строки от блондинки http://www.cyberforum.ru/cpp-beginners/thread503244.html
Привет всем! Вот решила начать изучать язык программирования С++, но не все пока получается... Вот дали задание...написать программу, чтобы можно было вводить строку... Если строка начинается с пробелов, то программа убирает эти пробелы... Так чтобы строка начиналась с символов... Ввод: _ _ _hello_hello Вывод: hello_hello
C++ ошибка при компиляции проги, использущей шаблоны классов Возникла ошибка при компиляции проги, использующей шаблоны. Ошибка - undefined symbol /*...*/ in module main.cpp (линковщик не может найти реализацию функции класса) Пусть есть 3 файла (temp.h, tenp.cpp, main.cpp), соответственно первые 2 файла - это объявление и реализация класса, использующего шаблоны,т.е. что-то типа template <class C> Temp { // ... } http://www.cyberforum.ru/cpp-beginners/thread503241.html
Потоки и выделение памяти в куче C++
Подскажите, кто знает, какие есть тонкости при выделении памяти в куче (new) в потоках отличных от главного. У меня возникают исключения при (или после) выделении памяти оператором new. Причём не в каком-то определённом месте а как-то хаотически (то тут, то там). Убрал все операторы new всё заработало нормально, но такой вариант не подходит для общего случая. VS.NET 2003.
C++ Не могу найти ошибку в исходнике.
Привет програмёры.Я учусь програмировать на С++ и для закрепления начала изучения функций и массивов написал небольшую програмку massiv, и она компилируется, но работает неправильно(после ввода чисел работа почемуто обрывается.Не могу найти ошибку.Вот текст програмки: #include<cstdio> #include<cstdlib> #include<iostream> using namespace std; int Proizved(int mass, int velechina);
C++ _tsetlocale(LC_CTYPE, _T("rus_rus")) http://www.cyberforum.ru/cpp-beginners/thread503108.html
CString cfn; ... cfn.Left(3).CompareNoCase(L"ИЗМ") == 0 Почему это условие не выполняется при cfn равное, например, "изм5"? Пробовал также перед условием писать следующее: cfn.MakeUpper(); не помогло.
C++ Как получить все папки и файлы хранящиеся на диске? Здравствуйте! Помогите пожалуйста в написании кода, с помошью которого можно получить все папки и файлы хранящиеся на диске D: С уважением! подробнее

Показать сообщение отдельно
arist
0 / 0 / 0
Регистрация: 14.02.2011
Сообщений: 100
04.06.2012, 09:57     Оболочка для потков-методов классов
Задача: написать удобную оболочку для реализации многопоточных классов.
Пишу:
ThreadWrap.h:
Код
#ifndef _ThreadWrap_h_
#define _ThreadWrap_h_

#define THREAD_DECLARE(method) DWORD WINAPI _##method(VOID *); 
			       HANDLE method(VOID *);

#define THREAD_BEGIN(theclass, method) 
	HANDLE theclass::method(VOID *pv){ 
		HANDLE h = CreateThread(NULL, 0, _##method, pv, 0, NULL); 
		return h; 
	} 
	DWORD WINAPI theclass::_##method(VOID *pv){

#define THREAD_END }

#endif _ThreadWrap_h_
main.cpp:
Код
#include "ThreadWrap.h"

class test{
public:
	THREAD_DECLARE(f)
};

THREAD_BEGIN(test, f)
	return 0;
THREAD_END

int _tmain(int argc, _TCHAR* argv[])
{
	return 0;
}
Наблюдается две проблемы:
1. В Class View методы f и _f отсутствуют, а присутствует метод THREAD_DECLARE(f):
test
|
-- THREAD_DECLARE(f)

2. На строке THREAD_BEGIN(test, f) выдаётся ошибка:
error C2664: 'CreateThread' : cannot convert parameter 3 from 'DWORD (void *)' to 'LPTHREAD_START_ROUTINE'
None of the functions with this name in scope match the target type

Что я сделал неправильно?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 10:27. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru