- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 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
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
// Файл settings.cpp
#define SETTINGS_READ
#include "Settings.h"
#undef SETTINGS_READ
#include "Settings.h"
#endif
// ----------------------------------
// Файл settings.h
#ifdef SETTINGS_READ
#define _XML_OPTION_VALUE(name,value) if (XML.FindElem(_CRT_WIDE(#name))) {/*XML.IntoElem();*/ XML.GetData(value); /*ShowVar(value);ShowVar(_CRT_WIDE(#name));*/ /* XML.OutOfElem();*/}
#define _XML_OPTION_ATTR(name,value) XML.GetAttrib(_CRT_WIDE(#name),value)
#define XML_NODE_START(name,value) if (XML.FindElem(_CRT_WIDE(#name))) {XML.IntoElem();
#define XML_NODE_START_WITHATTRIB(name,value) if (XML.FindElem(_CRT_WIDE(#name))) {
#define XML_NODE_STARTS(name,value) if (XML.FindElem(name)) {
#define XML_NODE_START_VALUE(name,value) if (XML.FindElem(_CRT_WIDE(#name))) { XML.GetData(value);XML.IntoElem();
#define XML_NODE_START_VALUE_WITHATTRIB(name,value) if (XML.FindElem(_CRT_WIDE(#name))) { XML.GetData(value);
#define XML_NODE_END() \
XML.OutOfElem(); \
}
#define XML_OPTION_VALUE(name) _XML_OPTION_VALUE(name,name)
#define XML_OPTION_MEMBER_VALUE(prefix, name) _XML_OPTION_VALUE(name, prefix##.name)
#define XML_OPTION_ATTR(name) _XML_OPTION_ATTR(name,name)
#define XML_OPTION_MEMBER_ATTR(prefix, name) _XML_OPTION_ATTR(name, prefix##.name)
#define COLOR_TO_PINT(c) (*(int*)&##c)
#else
// SAVING MACROSES
#define _XML_OPTION_VALUE(name,value) XML.AddElem(_CRT_WIDE(#name),value) ; /*XML.OutOfElem();*/
#define _XML_OPTION_ATTR(name,value) XML.SetAttrib(_CRT_WIDE(#name),value)
#define XML_NODE_START(name,value) XML.AddElem(_CRT_WIDE(#name)); {XML.IntoElem();
// ( еще десяток макросов)
#endif
#ifdef SETTINGS_READ
bool CSettings::MacroLoadSettings(CMyXml &XML)
{
#else
bool CSettings::MacroSaveSettings(CMyXml &XML)
{
#endif
TCHAR szFont[1024];
CString Font;
XML_NODE_START(Settings);
XML_NODE_START(General);
XML_OPTION_MEMBER_VALUE(Settings,Language);
XML_OPTION_VALUE(ExplorerContextMenu);
#ifndef SETTINGS_READ
HotkeysStr= Settings.Hotkeys.toString();
FontToString(&LogoSettings.Font,Font);
#endif
XML_OPTION_VALUE(HotkeysStr);
#ifdef SETTINGS_READ
Settings.Hotkeys.DeSerialize(HotkeysStr);
StringToFont(Font, &LogoSettings.Font);
#endif
#endif
XML_NODE_END();
// ..............................................
XML_NODE_END(); // end of settings
XML_NODE_END(); //
return true;
}
Фееричный пример повторного использования кода с помощью директив препроцессора.
Создано с целью совместить в одном месте чтение/запись настроек программы (с риском что-нибудь забыть) из XML файла.
Lure Of Chaos 13.06.2011 22:59 # 0
SmackMyBitchUp 14.06.2011 14:28 # +2
из подмножества наркопрограммирования
AxisPod 14.06.2011 06:42 # 0
wvxvw 14.06.2011 06:57 # +2
Lure Of Chaos 14.06.2011 11:02 # 0
2 пинты - зеленые черти
3 пинты - красные черти
5 пинт - белочка
ctm 14.06.2011 10:03 # +3
Aleskey 14.06.2011 10:33 # 0
sayidandrtfm 14.06.2011 11:08 # −11
«Язык программирования С++ Специальное издание»
Бьерн Страуструп
Издательство: Бином
Год издания: 2011
Страниц: 1136
ISBN: 978-5-7989-0425-9, 0-201-70073-5
Язык: русский
Формат: DJVU
Размер: 9.1 Мб
http://depositfiles.com/ru/files/et5o72w34
http://turbobit.net/download/free/0epk2949ob36
7ion 14.06.2011 11:51 # +3
sayidandrtfm 14.06.2011 12:13 # −9
bugmenot 14.06.2011 14:30 # 0
sayidandrtfm 14.06.2011 15:08 # −8
bugmenot 14.06.2011 15:20 # 0
sayidandrtfm 14.06.2011 15:40 # −8
Lure Of Chaos 14.06.2011 16:53 # 0
guest 14.06.2011 14:39 # 0
TheHamstertamer 14.06.2011 18:31 # +5
ПОССОНЫ НЕ КОЧЯЙТЕ КОМП РАСПИДОПАСИЛО ВИНТ В КАШУ ПИШУ В ОБЩЕЙ ТЕТРАДКЕ!!!
guest 15.06.2011 09:44 # 0
Lure Of Chaos 15.06.2011 10:24 # 0
guest 16.06.2011 02:58 # 0
3.14159265 15.06.2011 13:05 # +6
У БРАТА УТЕЧКИ ПАМЯТИ СТЕК ПЕРЕПОЛНИЛСЯ КОМП РАСПИДОРАСИЛО.
НИРИКАМИНДУЮ
guest 15.06.2011 13:27 # −2
Lure Of Chaos 15.06.2011 16:23 # +1
> Поймал Герасим Золотую Рыбку.
> Теперь у него корова, лыжи с палками
> и женская грудь.
guest 16.06.2011 02:57 # 0
Lure Of Chaos 15.06.2011 16:26 # +1
guest8 08.04.2019 20:56 # −999