kyuseo의 게임 프로그래밍
게시판과 PDB 파일을 이용한 프로그램 오류, 콜스텍(Call Stack) 자동 등록(신고) 시스템 본문
개요.. |
게임, 프로그램을 개발하다 보면 특정 상황에서 다운이 되는 현상이 발생합니다.
해당 콜스텍(Call Stack)을 알 수 있다면 오류를 쉽게 수정할 수 있지만 개발자의 PC가 아니므로 오류재현도 쉽지가 않습니다.
이를 자동화하고 해결하고자 오류 신고 시스템과 PDB 파일을 이용한 오류 덤프 시스템을 혼합하여 사용합니다.
오류 신고 시스템이 작동되는 과정 |
1. 프로그램 오류가 발생되면 PDB 파일을 암호화하여 배포된 파일에서 오류 함수를 콜스택(Call Stack)검색하여 오류 정보를 작성합니다. (SeTranslator를 이용함)
2. 간단한 사용자의 시스템과 실행되고 있는 함수 목록을 작성합니다.
3. 아래와 같은 오류 신고 시스템이 프로그램을 작동합니다.
4. 게시판에 오류내용을 등록합니다.
실제 신고된 모습 |
*----> 사용자
정보 <----* |
PDB 파일을 변환한 모습 (실제로는 암호화 하여 배포합니다.)
*----> Header <----* 현재 날짜/시간 : 2008-03-21 10:41:53 버전 = 1, 심볼 개수 = 18420, 라인 파일명 개수 = 768, 라인 개수 = 72377
모듈명 기본 주소 심볼 라인 Release\ClubPoker.dll 0x10000000 O O
*----> Symbol <----* 0x00001000 6 CClubPokerApp::GetThisMessageMap 0x00001006 5 CClubPokerApp::~CClubPokerApp 0x0000100B 25 ATL::AtlThrowImpl 0x00001024 4 ATL::CStringData::data 0x00001028 11 ATL::CStringData::AddRef 0x00001033 9 ATL::CStringData::IsLocked 0x0000103C 10 ATL::CStringData::IsShared 0x00001046 26 ATL::CStringData::Release 0x00001060 19 strcpy_s<32> 0x00001073 9 AfxOleGetMessageFilter 0x0000107C 10 COleMessageFilter::SetMessagePendingDelay 0x00001086 10 COleMessageFilter::EnableBusyDialog 0x00001090 10 COleMessageFilter::EnableNotRespondingDialog 0x0000109A 6 GetGameInfo 0x000010A0 3 ATL::CSimpleStringT<char,0>::operator char const * 0x000010A3 12 ATL::CSimpleStringT<char,0>::Attach 0x000010AF 6 ATL::CSimpleStringT<char,0>::GetData 0x000010B5 38 ATL::CSimpleStringT<char,0>::SetLength 0x000010DB 5 StrTraitMFC<char,ATL::ChTraitsCRT<char> >::GetDefaultManager 0x000010E0 5 ATL::ChTraitsCRT<char>::GetFormattedLength 0x000010E5 5 ATL::ChTraitsCRT<char>::Format 0x000010EA 5 ATL::CSimpleStringT<char,0>::CopyChars 0x000010EF 11 ATL::CSimpleStringT<char,0>::ThrowMemoryException 0x000010FA 104 ATL::CSimpleStringT<char,0>::Fork 0x00001162 91 ATL::CSimpleStringT<char,0>::CloneData 0x000011BD 52 ATL::CSimpleStringT<char,0>::Reallocate 0x000011F1 6 CClubPokerApp::GetMessageMap 0x000011F7 64 GetSeTranslator 0x00001237 37 ATL::CSimpleStringT<char,0>::CSimpleStringT<char,0> 0x0000125C 30 ATL::CSimpleStringT<char,0>::CSimpleStringT<char,0> 0x0000127A 10 ATL::CSimpleStringT<char,0>::~CSimpleStringT<char,0> 0x00001284 5 ATL::CSimpleStringT<char,0>::ReleaseBufferSetLength 0x00001289 71 ATL::CSimpleStringT<char,0>::PrepareWrite2 0x000012D0 54 CClubPokerApp::CClubPokerApp 0x00001306 3 CObject::Serialize 0x00001309 13 CObject::operator delete 0x00001316 28 CClubPokerApp::`scalar deleting destructor' 0x00001332 20 ATL::CStringT<char,StrTraitMFC<char,ATL::ChTraitsCRT<char> > >::CStringT<char,StrTraitMFC<char,ATL::ChTraitsCRT<char> > > 0x00001346 18 ATL::CStringT<char,StrTraitMFC<char,ATL::ChTraitsCRT<char> > >::CStringT<char,StrTraitMFC<char,ATL::ChTraitsCRT<char> > > 0x00001358 10 ATL::CStringT<char,StrTraitMFC<char,ATL::ChTraitsCRT<char> > >::~CStringT<char,StrTraitMFC<char,ATL::ChTraitsCRT<char> > > 0x00001362 42 ATL::CSimpleStringT<char,0>::PrepareWrite 0x0000138C 5 ATL::CSimpleStringT<char,0>::GetBuffer 0x00001391 79 ATL::CStringT<char,StrTraitMFC<char,ATL::ChTraitsCRT<char> > >::FormatV 0x000013E0 59 Stringf 0x0000141B 116 GetIni 0x0000148F 162 CClubPokerApp::InitInstance 0x00001531 59 DestroyGame 0x0000156C 1 GetGameParam 0x0000156D 28 CArray<ATL::CStringT<char,StrTraitMFC<char,ATL::ChTraitsCRT<char> > >,char const *>::ElementAt 0x00001589 3 CObject::CObject 0x0000158C 1 CObject::~CObject 0x0000158D 9 AfxGetApp 0x00001596 31 RelayCommonClientEvent 0x000015B5 4 CArray<ATL::CStringT<char,StrTraitMFC<char,ATL::ChTraitsCRT<char> > >,char const *>::GetSize 0x000015B9 5 CArray<ATL::CStringT<char,StrTraitMFC<char,ATL::ChTraitsCRT<char> > >,char const *>::operator[] 0x000015BE 38 RelayGameEvent 0x000015E4 19 GetGameInfo 0x000015F7 23 CArray<ATL::CStringT<char,StrTraitMFC<char,ATL::ChTraitsCRT<char> > >,char const *>::CArray<ATL::CStringT<char,StrTraitMFC<char,ATL::ChTraitsCRT<char> > >,char const *> 0x0000160E 5 operator new 0x00001613 39 AfxCrtErrorCheck 0x0000163A 31 ATL::Checked::memcpy_s 0x00001659 9 CArchive::IsStoring 0x00001662 84 GetVars 0x000016B6 79 GetReg 0x00001705 64 GetCPWebOnline 0x00001745 235 CreateGame 0x00001830 33 ATL::CStringT<char,StrTraitMFC<char,ATL::ChTraitsCRT<char> > >::`scalar deleting destructor' 0x00001851 508 CArray<ATL::CStringT<char,StrTraitMFC<char,ATL::ChTraitsCRT<char> > >,char const *>::SetSize 0x00001A4D 54 CArray<ATL::CStringT<char,StrTraitMFC<char,ATL::ChTraitsCRT<char> > >,char const *>::~CArray<ATL::CStringT<char,StrTraitMFC<char,ATL::ChTraitsCRT<char> > >,char const *> 0x00001A83 61 CArray<ATL::CStringT<char,StrTraitMFC<char,ATL::ChTraitsCRT<char> > >,char const *>::Serialize 0x00001AC0 28 CArray<ATL::CStringT<char,StrTraitMFC<char,ATL::ChTraitsCRT<char> > >,char const *>::`scalar deleting destructor' 0x00001ADC 18 CPArray<ATL::CStringT<char,StrTraitMFC<char,ATL::ChTraitsCRT<char> > >,char const *>::CPArray<ATL::CStringT<char,StrTraitMFC<char,ATL::ChTraitsCRT<char> > >,char const *> 0x00001AEE 5 CPArray<ATL::CStringT<char,StrTraitMFC<char,ATL::ChTraitsCRT<char> > >,char const *>::~CPArray<ATL::CStringT<char,StrTraitMFC<char,ATL::ChTraitsCRT<char> > >,char const *> 0x00001AF3 28 CPArray<ATL::CStringT<char,StrTraitMFC<char,ATL::ChTraitsCRT<char> > >,char const *>::`scalar deleting destructor' 0x00001B0F 115 SetGameParam 0x00001B82 1 operator delete 0x00001B83 9 Define_the_symbol__ATL_MIXED::Thank_you::Thank_you 0x00001B8C 1 Define_the_symbol__ATL_MIXED::Thank_you::one 0x00001B8D 45 ATL::AtlMultiply<int> 0x00001BBA 32 ATL::AtlMultiply<unsigned int> 0x00001BDA 5 ATL::CCRTAllocator::Allocate 0x00001BDF 5 ATL::CCRTAllocator::Free 0x00001BE4 6 InterlockedExchangePointer 0x00001BEA 93 CMap<int,int,ATL::CStringT<char,StrTraitMFC<char,ATL::ChTraitsCRT<char> > >,char const *>::InitHashTable 0x00001C47 6 ATL::_AtlGetConversionACP 0x00001C4D 55 AtlA2WHelper 0x00001C84 56 AtlW2AHelper 0x00001CBC 27 ATL::AtlThrowLastWin32 0x00001CD7 31 ATL::Checked::memmove_s 0x00001CF6 27 ATL::Checked::wcscpy_s 0x00001D11 92 ATL::_AtlGetStringResourceImage 0x00001D6D 47 ATL::AtlGetStringResourceImage 0x00001D9C 33 CompareElements<int,int> 0x00001DBD 63 ATL::_AtlInstallStringThunk 0x00001DFC 18 CPoint::CPoint 0x00001E0E 10 HashKey<int> 0x00001E18 3 _AfxInitManaged 0x00001E1B 4 CPlex::data 0x00001E1F 24 Rand 0x00001E37 21 RandRange 0x00001E4C 31 strreplace 0x00001E6B 50 IsPrimeNumber 0x00001E9D 33 GetVPrimeNumber 0x00001EBE 17 GetVPrimeNumber 0x00001ECF 23 GetVPrimeNumber120 0x00001EE6 22 Byte2KByte 0x00001EFC 22 Byte2MByte 0x00001F12 88 HitTest 0x00001F6A 90 HitTest 0x00001FC4 84 HitTest 0x00002018 40 CPFlySoundController::Play 0x00002040 9 CxFile::CxFile 0x00002049 7 CxFile::~CxFile 0x00002050 24 CxFile::PutC 0x00002068 11 CxFile::CxFile 0x00002073 5 CxFile::operator= 0x00002078 29 CxFile::`scalar deleting destructor' 0x00002095 74 CxFile::`vector deleting destructor' 0x000020DF 26 CxIOFile::CxIOFile 0x000020F9 49 CxIOFile::Open 0x0000212A 35 CxIOFile::Close 0x0000214D 31 CxIOFile::Read 0x0000216C 31 CxIOFile::Write 0x0000218B 37 CxIOFile::Seek 0x000021B0 16 CxIOFile::Tell 0x000021C0 67 CxIOFile::Size 0x00002203 24 CxIOFile::Flush 0x0000221B 23 CxIOFile::Eof 0x00002232 19 CxIOFile::Error 0x00002245 35 CxIOFile::PutC 0x00002268 19 CxIOFile::GetC 0x0000227B 27 CxIOFile::CxIOFile 0x00002296 21 CxIOFile::operator= 0x000022AB 15 CxIOFile::`default constructor closure' 0x000022BA 45 CxMemFile::CxMemFile 0x000022E7 39 CxMemFile::operator= 0x0000230E 10 CxMemFile::`default constructor closure' 0x00002318 28 CxMemFile::`scalar deleting destructor' 0x00002334 73 CxMemFile::`vector deleting destructor' 0x0000237D 11 CxImage::~CxImage 0x00002388 8 CxImage::`default constructor closure' 0x00002390 18 CxImage::`copy constructor closure' 0x000023A2 34 CxImage::`scalar deleting destructor' 0x000023C4 82 CxImage::`vector deleting destructor' 0x00002416 40 CxImageGIF::CxImageGIF 0x0000243E 11 CxImageGIF::~CxImageGIF 0x00002449 661 CxImageGIF::CxImageGIF 0x000026DE 646 CxImageGIF::operator= 0x00002964 34 CxImageGIF::`scalar deleting destructor' 0x00002986 82 CxImageGIF::`vector deleting destructor' 0x000029D8 36 GetGameCost 0x000029FC 6 GetInstance 0x00002A02 6 GetMainHwnd 0x00002A08 6 GetMainWnd 0x00002A0E 6 GetWebOnline 0x00002A14 5 _S 0x00002A19 6 GetMaxRoomSeat 0x00002A1F 6 GetMGameInfo 0x00002A25 75 IsGuestId 0x00002A70 6 ATL::_ATL_SAFE_ALLOCA_IMPL::CAtlSafeAllocBufferManager<ATL::CCRTAllocator>::CAtlSafeAllocBufferManager<ATL::CCRTAllocator> 0x00002A76 25 ATL::_ATL_SAFE_ALLOCA_IMPL::CAtlSafeAllocBufferManager<ATL::CCRTAllocator>::~CAtlSafeAllocBufferManager<ATL::CCRTAllocator> 0x00002A8F 6 ATL::CTempBuffer<char,128,ATL::CCRTAllocator>::CTempBuffer<char,128,ATL::CCRTAllocator> 0x00002A95 3 ATL::CTempBuffer<char,128,ATL::CCRTAllocator>::operator char * 0x00002A98 3 ATL::CW2AEX<128>::operator char * 0x00002A9B 3 ATL::CSimpleStringT<char,0>::GetString 0x00002A9E 9 ATL::CTempBuffer<char,128,ATL::CCRTAllocator>::FreeHeap 0x00002AA7 22 ATL::CSimpleStringT<char,0>::StringLength 0x00002ABD 10 StrTraitMFC<char,ATL::ChTraitsCRT<char> >::FindStringResourceInstance 0x00002AC7 5 ATL::ChTraitsCRT<char>::StringFindString 0x00002ACC 4 ATL::_ATL_SAFE_ALLOCA_IMPL::CAtlSafeAllocBufferManager<ATL::CCRTAllocator>::CAtlSafeAllocBufferNode::GetData 0x00002AD0 33 ATL::CTempBuffer<char,128,ATL::CCRTAllocator>::AllocateHeap 0x00002AF1 29 ATL::ChTraitsCRT<char>::GetBaseTypeLength 0x00002B0E 35 ATL::ChTraitsCRT<char>::ConvertToBaseType 0x00002B31 5 ATL::CSimpleStringT<char,0>::CopyCharsOverlapped 0x00002B36 34 ATL::AtlAdd<unsigned long> 0x00002B58 37 ATL::AtlAddThrow<unsigned long> 0x00002B7D 37 ATL::AtlMultiplyThrow<unsigned int> 0x00002BA2 18 ATL::AtlConvFreeMemory<char> 0x00002BB4 107 ATL::AtlConvAllocMemory<char> 0x00002C1F 30 `vector constructor iterator' 0x00002C3D 117 ATL::_ATL_SAFE_ALLOCA_IMPL::_AtlVerifyStackAvailable 0x00002CB2 82 CMap<int,int,ATL::CStringT<char,StrTraitMFC<char,ATL::ChTraitsCRT<char> > >,char const *>::GetAssocAt 0x00002D04 82 CMap<int,int,CPSound *,CPSound *>::GetAssocAt 0x00002D56 64 GetNormalSurfaceDrawSystem 0x00002D96 64 GetOverlaySurfaceDrawSystem 0x00002DD6 64 GetLightenSurfaceDrawSystem 0x00002E16 64 GetDarkenSurfaceDrawSystem 0x00002E56 64 GetMultyplySurfaceDrawSystem 0x00002E96 64 GetScreenSurfaceDrawSystem 0x00002ED6 64 GetDifferenceSurfaceDrawSystem 0x00002F16 64 GetExclusionSurfaceDrawSystem 0x00002F56 64 GetAdditiveSurfaceDrawSystem 0x00002F96 64 GetSubtractiveSurfaceDrawSystem 0x00002FD6 64 GetStampSurfaceDrawSystem 0x00003016 64 GetXorSurfaceDrawSystem 0x00003056 64 GetRedSurfaceDrawSystem 0x00003096 64 GetGreenSurfaceDrawSystem 0x000030D6 64 GetBlueSurfaceDrawSystem 0x00003116 64 GetGraySurfaceDrawSystem 0x00003156 64 GetFlipSurfaceDrawSystem 0x00003196 64 GetMirrorSurfaceDrawSystem 0x000031D6 64 GetDodgeSurfaceDrawSystem 0x00003216 197 GetSurfaceDrawSystem 0x000032DB 22 CxIOFile::~CxIOFile 0x000032F1 28 CxIOFile::`scalar deleting destructor' 0x0000330D 73 CxIOFile::`vector deleting destructor' 0x00003356 66 CxImageGIF::Decode 0x00003398 66 CxImageGIF::Encode 0x000033DA 75 CxImageGIF::Encode 0x00003425 69 GetLog 0x0000346A 69 GetDLog 0x000034AF 64 GetSoundController 0x000034EF 21 PlaySoundA 0x00003504 40 ATL::_ATL_SAFE_ALLOCA_IMPL::CAtlSafeAllocBufferManager<ATL::CCRTAllocator>::Allocate 0x0000352C 13 ATL::CTempBuffer<char,128,ATL::CCRTAllocator>::~CTempBuffer<char,128,ATL::CCRTAllocator> 0x00003539 17 ATL::CW2AEX<128>::~CW2AEX<128> 0x0000354A 67 ATL::CSimpleStringT<char,0>::Empty 0x0000358D 6 ATL::CSimpleStringT<char,0>::GetLength 0x00003593 13 ATL::CSimpleStringT<char,0>::IsEmpty 0x000035A0 35 ATL::CTempBuffer<char,128,ATL::CCRTAllocator>::AllocateBytes 0x000035C3 186 ATL::CW2AEX<128>::Init 0x0000367D 26 ATL::CSimpleStringT<char,0>::GetBuffer 0x00003697 39 CMap<int,int,CPSound *,CPSound *>::Lookup 0x000036BE 271 ATL::CompareStringWFake 0x000037CD 34 ATL::CompareStringWThunk 0x000037EF 247 ATL::lstrcmpiWFake 0x000038E6 30 ATL::lstrcmpiWThunk 0x00003904 298 ATL::CharLowerWFake 0x00003A2E 30 ATL::CharLowerWThunk 0x00003A4C 298 ATL::CharUpperWFake 0x00003B76 30 ATL::CharUpperWThunk 0x00003B94 30 CPSoundController::GetSound 0x00003BB2 28 ATL::CTempBuffer<char,128,ATL::CCRTAllocator>::Allocate 0x00003BCE 32 ATL::CW2AEX<128>::CW2AEX<128> 0x00003BEE 54 ATL::CStringT<char,StrTraitMFC<char,ATL::ChTraitsCRT<char> > >::Find 0x00003C24 32 ATL::CSimpleStringT<char,0>::operator[] 0x00003C44 59 ATL::CSimpleStringT<char,0>::SetAt 0x00003C7F 392 ATL::GetEnvironmentVariableWFake 0x00003E07 30 ATL::GetEnvironmentVariableWThunk 0x00003E25 188 ATL::GetStringTypeExWFake 0x00003EE1 34 ATL::GetStringTypeExWThunk 0x00003F03 11 CMap<int,int,ATL::CStringT<char,StrTraitMFC<char,ATL::ChTraitsCRT<char> > >,char const *>::CPair::~CPair 0x00003F0E 23 CMap<int,int,ATL::CStringT<char,StrTraitMFC<char,ATL::ChTraitsCRT<char> > >,char const *>::CPair::CPair 0x00003F25 55 MakeLower 0x00003F5C 23 CPSoundController::Stop 0x00003F73 17 StopSound 0x00003F84 89 ATL::CStringT<char,StrTraitMFC<char,ATL::ChTraitsCRT<char> > >::LoadStringA 0x00003FDD 107 ATL::CSimpleStringT<char,0>::SetString 0x00004048 18 CMap<int,int,ATL::CStringT<char,StrTraitMFC<char,ATL::ChTraitsCRT<char> > >,char const *>::CAssoc::CAssoc 0x0000405A 78 ATL::CStringT<char,StrTraitMFC<char,ATL::ChTraitsCRT<char> > >::Insert 0x000040A8 32 ATL::CStringT<char,StrTraitMFC<char,ATL::ChTraitsCRT<char> > >::LoadStringA 0x000040C8 32 ATL::CStringT<char,StrTraitMFC<char,ATL::ChTraitsCRT<char> > >::CheckImplicitLoad 0x000040E8 29 ATL::CSimpleStringT<char,0>::SetString 0x00004105 19 ATL::CStringT<char,StrTraitMFC<char,ATL::ChTraitsCRT<char> > >::Format 0x00004118 117 CMap<int,int,ATL::CStringT<char,StrTraitMFC<char,ATL::ChTraitsCRT<char> > >,char const *>::NewAssoc 0x0000418D 89 IntToCurrencyString 0x000041E6 77 AfxMessageBoxf 0x00004233 75 AfxMessageBoxf 0x0000427E 18 ATL::CSimpleStringT<char,0>::operator= 0x00004290 101 CMap<int,int,ATL::CStringT<char,StrTraitMFC<char,ATL::ChTraitsCRT<char> > >,char const *>::operator[] 0x000042F5 47 CPStringTable::Get 0x00004324 15 _S 0x00004333 18 ATL::CStringT<char,StrTraitMFC<char,ATL::ChTraitsCRT<char> > >::operator= 0x00004345 68 ATL::CStringT<char,StrTraitMFC<char,ATL::ChTraitsCRT<char> > >::CStringT<char,StrTraitMFC<char,ATL::ChTraitsCRT<char> > > 0x00004389 147 FindNoCase 0x0000441C 10 ATL::AtlIsValidString 0x00004426 4 CArray<CASH_ITEM,CASH_ITEM &>::GetSize 0x0000442A 28 CArray<CASH_ITEM,CASH_ITEM &>::ElementAt 0x00004446 5 ATL::ChTraitsCRT<char>::StringCompare 0x0000444B 23 CArray<CASH_ITEM,CASH_ITEM &>::CArray<CASH_ITEM,CASH_ITEM &> 0x00004462 31 CArchive::EnsureRead 0x00004481 5 CArray<CASH_ITEM,CASH_ITEM &>::operator[] 0x00004486 134 SerializeElements<CASH_ITEM> 0x0000450C 34 ATL::CStringT<char,StrTraitMFC<char,ATL::ChTraitsCRT<char> > >::Compare 0x0000452E 55 GetCashItem 0x00004565 17 GetCashItem 0x00004576 19 ATL::operator== 0x00004589 37 CASH_ITEM::~CASH_ITEM 0x000045AE 31 CASH_ITEM::CASH_ITEM 0x000045CD 61 GetCashItem 0x0000460A 17 GetCashItem 0x0000461B 28 CASH_ITEM::`scalar deleting destructor' 0x00004637 517 CArray<CASH_ITEM,CASH_ITEM &>::SetSize 0x0000483C 10 CArray<CASH_ITEM,CASH_ITEM &>::RemoveAll 0x00004846 57 CArray<CASH_ITEM,CASH_ITEM &>::~CArray<CASH_ITEM,CASH_ITEM &> 0x0000487F 61 CArray<CASH_ITEM,CASH_ITEM &>::Serialize 0x000048BC 28 CArray<CASH_ITEM,CASH_ITEM &>::`scalar deleting destructor' 0x000048D8 77 ATL::CSimpleStringT<char,0>::operator= 0x00004925 18 CPArray<CASH_ITEM,CASH_ITEM &>::CPArray<CASH_ITEM,CASH_ITEM &> 0x00004937 5 CPArray<CASH_ITEM,CASH_ITEM &>::~CPArray<CASH_ITEM,CASH_ITEM &> 0x0000493C 28 CPArray<CASH_ITEM,CASH_ITEM &>::`scalar deleting destructor' 0x00004958 18 ATL::CStringT<char,StrTraitMFC<char,ATL::ChTraitsCRT<char> > >::operator= 0x0000496A 81 CASH_ITEM::operator= 0x000049BB 55 CArray<CASH_ITEM,CASH_ITEM &>::SetAtGrow 0x000049F2 20 CArray<CASH_ITEM,CASH_ITEM &>::Add 0x00004A06 158 AddCashItem 0x00004AA4 1595 InitCashItem 0x000050DF 16 InitCommon 0x000050EF 88 SpliteMoney 0x00005147 18 ATL::CTime::CTime 0x00005159 147 ATL::CTime::CTime 0x000051EC 29 ATL::CTime::operator< 0x00005209 29 ATL::CTime::operator>= 0x00005226 18 CSize::CSize 0x00005238 3 CRect::CRect 0x0000523B 32 CRect::CRect 0x0000525B 23 CRect::Size 0x00005272 3 CRect::operator tagRECT * 0x00005275 18 CRect::IntersectRect 0x00005287 10 CWnd::IsIconic 0x00005291 39 CWnd::MoveWindow 0x000052B8 16 CWnd::GetWindowRect 0x000052C8 22 ATL::CTime::GetTickCount 0x000052DE 12 FinalCommon 0x000052EA 112 TimeStartEnd 0x0000535A 351 LoadWindowPos 0x000054B9 127 SaveWindowPos 0x00005538 1 FinalCommonMulti 0x00005539 51 MoneyToUnit 0x0000556C 9 CArray<ATL::CStringT<char,StrTraitMFC<char,ATL::ChTraitsCRT<char> > >,char const *>::IsEmpty 0x00005575 47 InitCommonMulti 0x000055A4 56 FindFitChannelLevel 0x000055DC 56 IsAvailableChannelLevel 0x00005614 47 CPArray<ATL::CStringT<char,StrTraitMFC<char,ATL::ChTraitsCRT<char> > >,char const *>::Find 0x00005643 79 ATL::CSimpleStringT<char,0>::Append 0x00005692 29 ATL::CSimpleStringT<char,0>::Append 0x000056AF 18 ATL::CSimpleStringT<char,0>::Append 0x000056C1 24 ATL::CSimpleStringT<char,0>::operator+= 0x000056D9 18 ATL::CSimpleStringT<char,0>::operator+= 0x000056EB 32 ATL::CStringT<char,StrTraitMFC<char,ATL::ChTraitsCRT<char> > >::operator= 0x0000570B 18 ATL::CStringT<char,StrTraitMFC<char,ATL::ChTraitsCRT<char> > >::operator+= 0x0000571D 18 ATL::CStringT<char,StrTraitMFC<char,ATL::ChTraitsCRT<char> > >::operator+= 0x0000572F 53 CArray<ATL::CStringT<char,StrTraitMFC<char,ATL::ChTraitsCRT<char> > >,char const *>::SetAtGrow 0x00005764 556 IsAvailableNickname 0x00005990 157 IsAvailableClubname 0x00005A2D 546 MoneyToString 0x00005C4F 20 CArray<ATL::CStringT<char,StrTraitMFC<char,ATL::ChTraitsCRT<char> > >,char const *>::Add 0x00005C63 1704 IsRobot 0x0000630B 37 GetTopLevelParentHWnd 0x00006330 17 ATL::CSimpleStringT<char,0>::GetManager 0x00006341 66 FlashWindow 0x00006383 57 IsActiveApp 0x000063BC 64 GetSoundManager 0x000063FC 64 GetStreamSoundManager 0x0000643C 64 GetFontManager 0x0000647C 64 GetLanguage 0x000064BC 35 ATL::CStringT<char,StrTraitMFC<char,ATL::ChTraitsCRT<char> > >::GetManager 0x000064DF 68 FinalCommonClient 0x00006523 18 ATL::CStringT<char,StrTraitMFC<char,ATL::ChTraitsCRT<char> > >::CStringT<char,StrTraitMFC<char,ATL::ChTraitsCRT<char> > > 0x00006535 71 ATL::CSimpleStringT<char,0>::Concatenate 0x0000657C 88 ATL::operator+ 0x000065D4 344 CreateWebMultiFont 0x0000672C 1068 InitCommonClient 0x00006B58 19 strcpy_s<5> 0x00006B6B 8 CFileFind::IsDirectory 0x00006B73 11 CPFile::GetAttribute 0x00006B7E 5 ATL::ChTraitsCRT<char>::StringFindString 0x00006B83 24 ATL::ChTraitsCRT<char>::SafeStringLen 0x00006B9B 64 GetAbuse 0x00006BDB 21 CPFile::IsExist 0x00006BF0 64 GetTControlIni 0x00006C30 21 ATL::operator== 0x00006C45 55 MakeUpper 0x00006C7C 46 CLanguage::~CLanguage 0x00006CAA 82 CLanguage::GetIndex 0x00006CFC 305 ATL::CStringT<char,StrTraitMFC<char,ATL::ChTraitsCRT<char> > >::Replace 0x00006E2D 35 CLanguage::CLanguage 0x00006E50 230 CArray<ATL::CStringT<char,StrTraitMFC<char,ATL::ChTraitsCRT<char> > >,char const *>::InsertAt 0x00006F36 106 CLanguage::GetCode 0x00006FA0 324 CLanguage::SetCode 0x000070E4 175 CLanguage::SetIndex 0x00007193 354 CLanguage::AddCode 0x000072F5 196 CLanguage::Create 0x000073B9 36 CNumberImage::CNumberImage 0x000073DD 25 CNumberImage::~CNumberImage 0x000073F6 23 CNumberImage::Create 0x0000740D 28 CArray<CPPackage *,CPPackage *>::GetAt 0x00007429 6 CRect::Width 0x0000742F 7 CRect::Height 0x00007436 14 CRect::operator= 0x00007444 33 CPFile::GetWin32FindData 0x00007465 17 CPSurface::SetClip 0x00007476 4 CPSurface::GetWidth 0x0000747A 4 CPSurface::GetHeight 0x0000747E 4 CArray<CPPackage *,CPPackage *>::GetSize 0x00007482 5 CArray<CPPackage *,CPPackage *>::operator[] 0x00007487 28 CNumberImage::`scalar deleting destructor' 0x000074A3 30 CNumberImage::SetClip 0x000074C1 52 CPSurface::Draw 0x000074F5 36 CompareElements<ATL::CStringT<char,StrTraitMFC<char,ATL::ChTraitsCRT<char> > >,char const *> 0x00007519 82 CMap<ATL::CStringT<char,StrTraitMFC<char,ATL::ChTraitsCRT<char> > >,char const *,CPPackage::INFO,CPPackage::INFO &>::GetAssocAt 0x0000756B 45 CMap<ATL::CStringT<char,StrTraitMFC<char,ATL::ChTraitsCRT<char> > >,char const *,CPPackage::INFO,CPPackage::INFO &>::Lookup 0x00007598 278 CNumberImage::Draw 0x000076AE 30 CNumberImage::Draw 0x000076CC 284 CNumberImage::Draw 0x000077E8 472 CNumberImage::DrawComma 0x000079C0 680 CNumberImage::DrawUint 0x00007C68 36 CNumberImage::Draw 0x00007C8C 36 CNumberImage::DrawComma 0x00007CB0 135 CPPackage::GetInfo 0x00007D37 21 CPPackage::IsExist 0x00007D4C 77 CPPackage::GetPackageFile 0x00007D99 65 CPPackageManager::FindPackage 0x00007DDA 23 CPPackageManager::GetPackageFile 0x00007DF1 131 CNumberImage::Create 0x00007E74 11 CWebOnline::Destroy 0x00007E7F 11 CWebOnline::SetStingTable 0x00007E8A 44 CWebOnline::CheckErrorChar 0x00007EB6 104 CWebOnline::InitWebPass 0x00007F1E 1 CWebOnline::OnLogin 0x00007F1F 1 CWebOnline::OnLogout 0x00007F20 18 ATL::ChTraitsCRT<char>::StringFindChar 0x00007F32 5 ATL::ChTraitsCRT<char>::CharNextA 0x00007F37 13 ATL::ChTraitsCRT<char>::IsSpace 0x00007F44 4 CMap<ATL::CStringT<char,StrTraitMFC<char,ATL::ChTraitsCRT<char> > >,char const *,ATL::CStringT<char,StrTraitMFC<char,ATL::ChTraitsCRT<char> > >,char const *>::GetSize 0x00007F48 93 CMap<ATL::CStringT<char,StrTraitMFC<char,ATL::ChTraitsCRT<char> > >,char const *,ATL::CStringT<char,StrTraitMFC<char,ATL::ChTraitsCRT<char> > >,char const *>::InitHashTable 0x00007FA5 24 sprintf_s<3> 0x00007FBD 36 ATL::AtlAdd<int> 0x00007FE1 8 CPCriticalSection::Lock 0x00007FE9 8 CPCriticalSection::Unlock 0x00007FF1 22 CPSyncCriticalSection::CPSyncCriticalSection 0x00008007 9 CPSyncCriticalSection::~CPSyncCriticalSection 0x00008010 9 CWebOnline::IsLogin 0x00008019 37 ATL::AtlAddThrow<int> 0x0000803E 39 CMap<ATL::CStringT<char,StrTraitMFC<char,ATL::ChTraitsCRT<char> > >,char const *,ATL::CStringT<char,StrTraitMFC<char,ATL::ChTraitsCRT<char> > >,char const *>::CMap<ATL::CStringT<char,StrTraitMFC<char,ATL::ChTraitsCRT<char> > >,char const *,ATL::CStringT<c 0x00008065 64 GetDes 0x000080A5 99 ATL::CSimpleStringT<char,0>::CSimpleStringT<char,0> 0x00008108 49 ATL::CStringT<char,StrTraitMFC<char,ATL::ChTraitsCRT<char> > >::Find 0x00008139 26 ATL::CStringT<char,StrTraitMFC<char,ATL::ChTraitsCRT<char> > >::CStringT<char,StrTraitMFC<char,ATL::ChTraitsCRT<char> > > 0x00008153 70 ATL::CStringT<char,StrTraitMFC<char,ATL::ChTraitsCRT<char> > >::Right 0x00008199 62 ATL::CStringT<char,StrTraitMFC<char,ATL::ChTraitsCRT<char> > >::Left 0x000081D7 125 ATL::CStringT<char,StrTraitMFC<char,ATL::ChTraitsCRT<char> > >::Mid 0x00008254 25 CMap<ATL::CStringT<char,StrTraitMFC<char,ATL::ChTraitsCRT<char> > >,char const *,ATL::CStringT<char,StrTraitMFC<char,ATL::ChTraitsCRT<char> > >,char const *>::CPair::~CPair 0x0000826D 33 ATL::CSimpleStringT<char,0>::GetBufferSetLength 0x0000828E 40 ATL::CSimpleStringT<char,0>::AppendChar 0x000082B6 185 CWebOnline::WebStringToString 0x0000836F 35 ATL::CStringT<char,StrTraitMFC<char,ATL::ChTraitsCRT<char> > >::Mid 0x00008392 89 ATL::operator+ 0x000083EB 100 ATL::CStringT<char,StrTraitMFC<char,ATL::ChTraitsCRT<char> > >::TrimLeft 0x0000844F 27 ATL::CSimpleStringT<char,0>::Truncate 0x0000846A 82 CMap<ATL::CStringT<char,StrTraitMFC<char,ATL::ChTraitsCRT<char> > >,char const *,ATL::CStringT<char,StrTraitMFC<char,ATL::ChTraitsCRT<char> > >,char const *>::GetAssocAt 0x000084BC 5 CMap<ATL::CStringT<char,StrTraitMFC<char,ATL::ChTraitsCRT<char> > >,char const *,ATL::CStringT<char,StrTraitMFC<char,ATL::ChTraitsCRT<char> > >,char const *>::CAssoc::~CAssoc 0x000084C1 18 ATL::CSimpleStringT<char,0>::operator+= 0x000084D3 74 ATL::CStringT<char,StrTraitMFC<char,ATL::ChTraitsCRT<char> > >::TrimRight 0x0000851D 82 CMap<ATL::CStringT<char,StrTraitMFC<char,ATL::ChTraitsCRT<char> > >,char const *,ATL::CStringT<char,StrTraitMFC<char,ATL::ChTraitsCRT<char> > >,char const *>::RemoveAll 0x0000856F 18 ATL::CStringT<char,StrTraitMFC<char,ATL::ChTraitsCRT<char> > >::operator+= 0x00008581 11 CMap<ATL::CStringT<char,StrTraitMFC<char,ATL::ChTraitsCRT<char> > >,char const *,ATL::CStringT<char,StrTraitMFC<char,ATL::ChTraitsCRT<char> > >,char const *>::~CMap<ATL::CStringT<char,StrTraitMFC<char,ATL::ChTraitsCRT<char> > >,char const *,ATL::CStringT< 0x0000858C 34 CMap<ATL::CStringT<char,StrTraitMFC<char,ATL::ChTraitsCRT<char> > >,char const *,ATL::CStringT<char,StrTraitMFC<char,ATL::ChTraitsCRT<char> > >,char const *>::`scalar deleting destructor' 0x000085AE 11 CPMap<ATL::CStringT<char,StrTraitMFC<char,ATL::ChTraitsCRT<char> > >,char const *,ATL::CStringT<char,StrTraitMFC<char,ATL::ChTraitsCRT<char> > >,char const *>::~CPMap<ATL::CStringT<char,StrTraitMFC<char,ATL::ChTraitsCRT<char> > >,char const *,ATL::CString 0x000085B9 155 CWebOnline::~CWebOnline 0x00008654 12 ATL::CStringT<char,StrTraitMFC<char,ATL::ChTraitsCRT<char> > >::Trim 0x00008660 56 CPMap<ATL::CStringT<char,StrTraitMFC<char,ATL::ChTraitsCRT<char> > >,char const *,ATL::CStringT<char,StrTraitMFC<char,ATL::ChTraitsCRT<char> > >,char const *>::CPMap<ATL::CStringT<char,StrTraitMFC<char,ATL::ChTraitsCRT<char> > >,char const *,ATL::CStringT 0x00008698 34 CPMap<ATL::CStringT<char,StrTraitMFC<char,ATL::ChTraitsCRT<char> > >,char const *,ATL::CStringT<char,StrTraitMFC<char,ATL::ChTraitsCRT<char> > >,char const *>::`scalar deleting destructor' 0x000086BA 156 CWebOnline::CWebOnline 0x00008756 28 CWebOnline::`scalar deleting destructor' 0x00008772 91 CWebOnline::Create |