Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
|

09.04.2010, 18:03
|
|
Познавший АНТИЧАТ
Регистрация: 26.03.2007
Сообщений: 1,095
Провел на форуме: 5265510
Репутация:
455
|
|
Большое спасибо.
Проблема решилась добавлением #include "stdafx.h"
|
|
|

09.04.2010, 22:46
|
|
Постоянный
Регистрация: 04.12.2007
Сообщений: 424
Провел на форуме: 2364957
Репутация:
479
|
|
Подскажите книгу, в которой описаны все тонкости, директивы, и т.д. языка С или С++. А то ничего годного не могу найти, везде одно и тоже - хелоуворлды и циклы 
|
|
|

09.04.2010, 22:56
|
|
Участник форума
Регистрация: 18.07.2009
Сообщений: 272
Провел на форуме: 2083691
Репутация:
330
|
|
Джеффри Рихтер, Кристоф Назар
Windows via C/C++. Программирование на языке Visual C++
http://www.ozon.ru/context/detail/id/4079733/
|
|
|

09.04.2010, 23:21
|
|
Участник форума
Регистрация: 25.08.2008
Сообщений: 187
Провел на форуме: 2066562
Репутация:
86
|
|
Сообщение от rudvil
Код:
void operator delete (void* mem) {
std::free(mem);
}
void operator delete[] (void* mem) {
std::free(mem);
}
Как можно узнать сколько байт в памяти занимает "mem"?
если это вообще реально...
Поясню, при выделении памяти с помощью
Код:
void* operator new (std::size_t size) {
usedMemory += size;
void* mem = std::malloc(size);
if (!mem)
ail::fatal_error("\n[ALLOCATING FAILED]\n");
return mem;
}
все просто - мы уже получаем размер выделяемой памяти, собственно хочется так же узнать сколько памяти удаляется при вызове delete или delete[], чтобы уменьшить счетчик используемой памяти...
Мб пригодится
Код:
void* operator new (std::size_t size) {
if (currentMemory + size >= maxMemory)
fatal_error("REACHED MEMORY LIMIT, EXITING..");
currentMemory += size;
void* ptr = std::malloc(size + sizeof(std::size_t));
if (ptr == NULL)
fatal_error("new - MALLOC FAIL\n");
*(std::size_t*)ptr = size;
return ((std::size_t*)ptr) + 1;
}
void operator delete (void* ptr) {
std::size_t size = (*(((std::size_t*)ptr) - 1));
currentMemory -= size;
ptr = (void*)(((std::size_t*)ptr) - 1);
std::free(ptr);
}
void* operator new[] (std::size_t size) {
if (currentMemory + size >= maxMemory)
fatal_error("REACHED MEMORY LIMIT, EXITING..");
currentMemory += size;
void* ptr = std::malloc(size + sizeof(std::size_t));
if (ptr == NULL)
fatal_error("new[] - MALLOC FAIL\n");
*(std::size_t*)ptr = size;
return ((std::size_t*)ptr) + 1;
}
void operator delete[] (void* ptr) {
std::size_t size = (*(((std::size_t*)ptr) - 1));
currentMemory -= size;
ptr = (void*)(((std::size_t*)ptr) - 1);
std::free(ptr);
}
т.б. в выделяемый блок памяти добавляем сигнатуру, в которой хранится размер выделенного блока.
|
|
|

10.04.2010, 14:50
|
|
Участник форума
Регистрация: 23.10.2009
Сообщений: 103
Провел на форуме: 289669
Репутация:
7
|
|
Всем привет. Возник вопрос, как с помощью винапи создать кнопку и эдит. Для этого нужна CreateDialog? Если нет, то для чего она? Мне сейчас нужно просто создать кнопку и эдит.
|
|
|

10.04.2010, 14:53
|
|
Участник форума
Регистрация: 25.08.2008
Сообщений: 187
Провел на форуме: 2066562
Репутация:
86
|
|
|
|
|

10.04.2010, 15:05
|
|
Участник форума
Регистрация: 23.10.2009
Сообщений: 103
Провел на форуме: 289669
Репутация:
7
|
|
rudvil, спасибо, первая ссылка помогла.
|
|
|

10.04.2010, 18:51
|
|
Познавший АНТИЧАТ
Регистрация: 24.06.2008
Сообщений: 1,996
Провел на форуме: 6075534
Репутация:
2731
|
|
Как в Borland C++ Builder преобразовать обычную строку в UTF-8?
Заранеее спасибо.
|
|
|

10.04.2010, 19:08
|
|
Участник форума
Регистрация: 25.08.2008
Сообщений: 187
Провел на форуме: 2066562
Репутация:
86
|
|
|
|
|

10.04.2010, 19:15
|
|
Познавший АНТИЧАТ
Регистрация: 24.06.2008
Сообщений: 1,996
Провел на форуме: 6075534
Репутация:
2731
|
|
В гугле ничего не нашёл.
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|