// CryptINI.cpp : ÄÜ¼Ö ÀÀ¿ë ÇÁ·Î±×·¥¿¡ ´ëÇÑ ÁøÀÔÁ¡À» Á¤ÀÇÇÕ´Ï´Ù. // #include "stdafx.h" #define CRTDBG_MAP_ALLOC #include #include #include #include #include "MemoryIni.h" #include "CryptFunc.h" int test_mem_leak() { LPCTSTR IniName = _T("akcfg.ini"); TCHAR IniPath[MAX_PATH] = {0}; TCHAR CurrentPath[MAX_PATH] = {0}; // ÇöÀç ½ÇÇàÆÄÀÏÀ» µðÆúÆ® °æ·Î·Î ÇÏ¿© IniÆÄÀÏ¿¡ ´ëÇÑ °æ·Î¸¦ ±¸ÇÔ // HMODULE hMod = GetModuleHandle( NULL ); GetModuleFileName( hMod, CurrentPath, MAX_PATH ); *(_tcsrchr( CurrentPath, _T('\\') ) ) = _T('\0'); #if (_MSC_VER >= 1500) // vs2008 ÀÌ»ó sprintf_s( IniPath, MAX_PATH, _T("%s\\%s"), CurrentPath, IniName ); #else StringCchPrintf( IniPath, MAX_PATH, _T("%s\\%s"), CurrentPath, IniName ); #endif // // Step 1: ini °´Ã¼ »ý¼º // MemoryIni mini; // // Step 2: °ªÀ» putString, putIntegerÇÔ¼ö·Î °ªÀ» µî·Ï // mini.putInteger( _T("NameList"), _T("NameCount"), 4 ); mini.putString ( _T("NameList"), _T("Name0"), _T("Seyool Park") ); mini.putString ( _T("NameList"), _T("Name1"), _T("¹Ú¼¼À²") ); mini.putString ( _T("NameList"), _T("Name2"), _T("ÚÓá¦ëÏ") ); mini.putString ( _T("NameList"), _T("Name3"), _T("ª½ªÎöâ") ); // // Step 3: ¼³Á¤µÈ °ªÀ» ÆÄÀÏ·Î ÀúÀå, NULLÀÌ¸é Æò¹®À¸·Î ÀúÀåÇÔ // if ( 0 > mini.SaveToFile( IniPath, SimpleXorCryption ) ) { _ASSERTE( !"SaveToFile fail" ); return -1; } // // Step 4: IniPath·ÎºÎÅÍ Ini³»¿ëÀ» ·ÎµåÇÔ, NULLÀÌ¸é Æò¹®À¸·Î °£ÁÖÇÔ // if ( 0 > mini.LoadFromFile( IniPath, SimpleXorCryption ) ) { _ASSERTE( !"LoadFromFile fail" ); return -1; } // // Step 5: ÇÊ¿äÇÑ °ªÀ» ÃßÃâÇØ ³¿ // TCHAR StrKey[MAX_LINE] = {0}; TCHAR StrValue[MAX_LINE] = {0}; LONG NameCount = 0; if ( 0 > mini.getInteger(_T("NameList"), _T("NameCount"), &NameCount) ) { _ASSERTE( !"getInteger fail" ); return -1; } for ( LONG i = 0; i < NameCount; i++ ) { #if (_MSC_VER >= 1500) // vs2008 ÀÌ»ó sprintf_s( StrKey, MAX_LINE, _T("Name%d"), i ); #else StringCchPrintf( StrKey, MAX_LINE, _T("Name%d"), i ); #endif mini.getString( _T("NameList"), StrKey, StrValue, MAX_LINE ); _tprintf( _T("[NameList] %s = %s\n"), StrKey, StrValue ); } return 0; } int _tmain(int argc, _TCHAR* argv[]) { UNREFERENCED_PARAMETER( argc ); UNREFERENCED_PARAMETER( argv ); _CrtSetDbgFlag( _CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF | _CRTDBG_REPORT_FLAG ); test_mem_leak(); _CrtDumpMemoryLeaks(); return 0; }