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

Потоки и выделение памяти в куче - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Не могу найти ошибку в исходнике. http://www.cyberforum.ru/cpp-beginners/thread503146.html
Привет програмёры.Я учусь програмировать на С++ и для закрепления начала изучения функций и массивов написал небольшую програмку massiv, и она компилируется, но работает неправильно(после ввода чисел работа почемуто обрывается.Не могу найти ошибку.Вот текст програмки: #include<cstdio> #include<cstdlib> #include<iostream> using namespace std; int Proizved(int mass, int velechina);
C++ _tsetlocale(LC_CTYPE, _T("rus_rus")) CString cfn; ... cfn.Left(3).CompareNoCase(L"ИЗМ") == 0 Почему это условие не выполняется при cfn равное, например, "изм5"? Пробовал также перед условием писать следующее: cfn.MakeUpper(); не помогло. http://www.cyberforum.ru/cpp-beginners/thread503108.html
Как получить все папки и файлы хранящиеся на диске? C++
Здравствуйте! Помогите пожалуйста в написании кода, с помошью которого можно получить все папки и файлы хранящиеся на диске D: С уважением!
GDI+: Вывод искривленного по дуге текста C++
Приветствую, All Подскажите плз, как можно сделать в GDI+ вывод искривленного по дуге текста, чтобы буквы были пропорционально растянуты, что то вроде эффекта Arc Text в Photoshop?
C++ Программа к 8 марту http://www.cyberforum.ru/cpp-beginners/thread502901.html
#include <zvety.h> #include <vino.h> #include <mans.h> #define QPIVO 3 #define QZVETY 5 // The one and only CWoman object CWoman woman;
C++ Исключение при вызове iterator destruction Здравствуйте. Помогите пожалуйста. Вот фрагмент кода: try { if(!m_vDataItems.empty()) { int nItemsCount = m_vDataItems.size(); for(int i=0; i < nItemsCount; i++) { _variant_t vtValues; vtValues = (long)m_vDataItems.nID; vtValues = (long)m_vDataItems.nParentID; подробнее

Показать сообщение отдельно
arist
0 / 0 / 0
Регистрация: 14.02.2011
Сообщений: 100
30.05.2012, 12:38  [ТС]     Потоки и выделение памяти в куче
Вот одна из функций (вызывается в других потоках, не в главном):
Код
void AppendEdit(CEdit *log, const TCHAR *s){
	TCHAR *text = new TCHAR[log->GetWindowTextLength()+_tcslen(s) + 1];
	log->GetWindowText(text, log->GetWindowTextLength());
	_tcscat(text, s);
	log->SetWindowText(text);
	delete text;
}
Вот сам поток:
Код
DWORD WINAPI MyThread(LPVOID lpMyStruct){
	static int count = 0;
	int current(++count);
	CMyStruct *ms = (CMyStruct *)lpMyStruct; //в ms хранится указатель на EditBox диалога созданного главным потоком

	TCHAR str[1000];

	_stprintf(str, _T("
Thread %i: started."), current);
	AppendEdit(ms->log, str);

	CThreadDialog dlg;
	if(-1 == dlg.DoModal()){
		_stprintf(str, _T("
Thread %i: Can't create dialog. %s Exit thread."), current, GetLastErrorString());
		AppendEdit(ms->log, str);
		goto end;
	}
	_stprintf(str, _T("
Thread %i: Message: %s"), current, dlg.m_text);
	AppendEdit(ms->log, str);

end:
	_stprintf(str, _T("
Thread %i: exit."), current);
	AppendEdit(ms->log, str);
	delete ms;
	return 0;
}
Исключение происходит где-то после DoModal(), но перед _stprintf()...
Output:
ERROR: Critical memory allocation from safety pool failed!
First-chance exception at 0x7c81eb33 in ThreadTest.exe: Microsoft C++ exception: CMemoryException @ 0x00f0f488.
Unhandled exception at 0x7c81eb33 in ThreadTest.exe: Microsoft C++ exception: CMemoryException @ 0x00f0f488.
и т.п.

Исключение в atltrace.h:
Код
	void __cdecl TraceV(const char *pszFileName, int nLine,
		DWORD_PTR dwCategory, UINT nLevel, LPCSTR pszFmt, va_list args) const
	{
		AtlTraceVA(m_dwModule, pszFileName, nLine, dwCategory, nLevel, pszFmt, args);
	}
 
Текущее время: 00:12. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru