2019-01-05 20:21:43 +08:00
|
|
|
|
|
|
|
|
|
|
// stdafx.h : <20><>ϵͳ<CFB5><CDB3><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC>İ<EFBFBD><C4B0><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>
|
|
|
|
|
|
// <20><><EFBFBD>Ǿ<EFBFBD><C7BE><EFBFBD>ʹ<EFBFBD>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD>
|
|
|
|
|
|
// <20>ض<EFBFBD><D8B6><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD>İ<EFBFBD><C4B0><EFBFBD><EFBFBD>ļ<EFBFBD>
|
|
|
|
|
|
|
|
|
|
|
|
#pragma once
|
|
|
|
|
|
|
2024-12-27 19:18:44 +08:00
|
|
|
|
#include "common/commands.h"
|
|
|
|
|
|
|
2019-09-07 10:47:50 +08:00
|
|
|
|
// ʹ<><CAB9>ѹ<EFBFBD><D1B9><EFBFBD>㷨<EFBFBD><E3B7A8><EFBFBD>㷨<EFBFBD><E3B7A8>Ҫ<EFBFBD><D2AA>clien<65><6E>stdafx.hƥ<68><C6A5>
|
|
|
|
|
|
#define USING_COMPRESS 1
|
|
|
|
|
|
|
2019-01-17 20:41:51 +08:00
|
|
|
|
// <20>Ƿ<EFBFBD>ʹ<EFBFBD><CAB9>ZLIB
|
2019-01-20 20:04:11 +08:00
|
|
|
|
#define USING_ZLIB 1
|
2019-01-17 11:58:26 +08:00
|
|
|
|
|
2019-01-17 20:41:51 +08:00
|
|
|
|
#if !USING_ZLIB
|
|
|
|
|
|
// <20>Ƿ<EFBFBD>ʹ<EFBFBD><CAB9>LZ4
|
2019-01-20 20:04:11 +08:00
|
|
|
|
#define USING_LZ4 1
|
2019-01-17 20:41:51 +08:00
|
|
|
|
#endif
|
|
|
|
|
|
|
2019-01-05 20:21:43 +08:00
|
|
|
|
#ifndef _SECURE_ATL
|
|
|
|
|
|
#define _SECURE_ATL 1
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
#ifndef VC_EXTRALEAN
|
|
|
|
|
|
#define VC_EXTRALEAN // <20><> Windows ͷ<><CDB7><EFBFBD>ų<EFBFBD><C5B3><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
2019-01-13 00:04:50 +08:00
|
|
|
|
// <20>Ƴ<EFBFBD><C6B3>Ի<EFBFBD><D4BB><EFBFBD><EFBFBD><EFBFBD>MFC<46>ؼ<EFBFBD><D8BC><EFBFBD>֧<EFBFBD>֣<EFBFBD><D6A3><EFBFBD>С<EFBFBD><D0A1>̬<EFBFBD><CCAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĵ<EFBFBD>С
|
|
|
|
|
|
#define _AFX_NO_MFC_CONTROLS_IN_DIALOGS
|
|
|
|
|
|
|
2019-01-13 13:13:59 +08:00
|
|
|
|
// <20>رնԻ<D5B6><D4BB><EFBFBD>ʱɾ<CAB1><C9BE><EFBFBD>Ի<EFBFBD><D4BB><EFBFBD>
|
|
|
|
|
|
#define CLOSE_DELETE_DLG 0
|
|
|
|
|
|
|
2019-01-05 20:21:43 +08:00
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD>й©<D0B9><C2A9><EFBFBD>谲װVLD<4C><44><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ע<EFBFBD>ʹ<EFBFBD><CDB4><EFBFBD>
|
2024-09-06 15:59:24 +08:00
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>װ<EFBFBD><D7B0>VLD, <20>뽫<EFBFBD><EBBDAB>װ·<D7B0><C2B7><EFBFBD><EFBFBD><EFBFBD>ӵ<EFBFBD><D3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <20><><EFBFBD><EFBFBD>Ϊ"VLDPATH", ·<><C2B7>Ϊ"D:\Program Files (x86)\Visual Leak Detector"
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʵ<EFBFBD>ʰ<EFBFBD>װĿ¼<C4BF><C2BC>дVLDPATH. <20><><EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD><D6B6>༭ÿ<E0BCAD><C3BF><EFBFBD><EFBFBD>Ŀ<EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>ͷ<EFBFBD>ļ<EFBFBD>Ŀ¼<C4BF>Ϳ<EFBFBD>Ŀ¼. <20>й<EFBFBD><D0B9><EFBFBD><EFBFBD><EFBFBD>VLD<4C><44><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD>ο<EFBFBD><CEBF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
|
|
|
|
|
// VS2017<31><37>ǰ<EFBFBD>汾<EFBFBD><E6B1BE>VLD: https://kinddragon.github.io/vld
|
|
|
|
|
|
// VS2019ʹ<39>õ<EFBFBD>VLD<4C><44>֧<EFBFBD><D6A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>VS<56>汾, <20>Ƽ<EFBFBD><C6BC><EFBFBD>: https://github.com/oneiric/vld/releases/tag/v2.7.0
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD>ܿض˳<D8B6><CBB3><EFBFBD><EFBFBD>ŵ<EFBFBD><C5B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><>ʹ<EFBFBD><CAB9>Releaseģʽ<C4A3><CABD><EFBFBD>ɵij<C9B5><C4B3><EFBFBD>, <20>Խ<EFBFBD><D4BD><EFBFBD><EFBFBD><EFBFBD>VLD<4C><44><EFBFBD><EFBFBD><EFBFBD><EFBFBD>; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA>VLD<4C><44><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>һͬ<D2BB><CDAC><EFBFBD><EFBFBD>.
|
2019-01-05 20:21:43 +08:00
|
|
|
|
#include "vld.h"
|
|
|
|
|
|
|
|
|
|
|
|
#include "targetver.h"
|
|
|
|
|
|
|
|
|
|
|
|
#define _ATL_CSTRING_EXPLICIT_CONSTRUCTORS // ijЩ CString <20><><EFBFBD>캯<EFBFBD><ECBAAF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ<EFBFBD><CABD>
|
|
|
|
|
|
|
|
|
|
|
|
// <20>ر<EFBFBD> MFC <20><>ijЩ<C4B3><D0A9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɷ<EFBFBD><C9B7>ĺ<EFBFBD><C4BA>Եľ<D4B5><C4BE><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
#define _AFX_ALL_WARNINGS
|
|
|
|
|
|
|
|
|
|
|
|
#include <afxwin.h> // MFC <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͱ<EFBFBD><EFBFBD><D7BC><EFBFBD><EFBFBD>
|
|
|
|
|
|
#include <afxext.h> // MFC <20><>չ
|
|
|
|
|
|
|
|
|
|
|
|
#include <afxdisp.h> // MFC <20>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
|
|
#ifndef _AFX_NO_OLE_SUPPORT
|
|
|
|
|
|
#include <afxdtctl.h> // MFC <20><> Internet Explorer 4 <20><><EFBFBD><EFBFBD><EFBFBD>ؼ<EFBFBD><D8BC><EFBFBD>֧<EFBFBD><D6A7>
|
|
|
|
|
|
#endif
|
|
|
|
|
|
#ifndef _AFX_NO_AFXCMN_SUPPORT
|
|
|
|
|
|
#include <afxcmn.h> // MFC <20><> Windows <20><><EFBFBD><EFBFBD><EFBFBD>ؼ<EFBFBD><D8BC><EFBFBD>֧<EFBFBD><D6A7>
|
|
|
|
|
|
#endif // _AFX_NO_AFXCMN_SUPPORT
|
|
|
|
|
|
|
|
|
|
|
|
#include <afxcontrolbars.h> // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϳؼ<CDBF><D8BC><EFBFBD><EFBFBD><EFBFBD> MFC ֧<><D6A7>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#define WM_USERTOONLINELIST WM_USER + 3000
|
|
|
|
|
|
#define WM_OPENSCREENSPYDIALOG WM_USER + 3001
|
|
|
|
|
|
#define WM_OPENFILEMANAGERDIALOG WM_USER + 3002
|
|
|
|
|
|
#define WM_OPENTALKDIALOG WM_USER+3003
|
|
|
|
|
|
#define WM_OPENSHELLDIALOG WM_USER+3004
|
|
|
|
|
|
#define WM_OPENSYSTEMDIALOG WM_USER+3005
|
|
|
|
|
|
#define WM_OPENAUDIODIALOG WM_USER+3006
|
|
|
|
|
|
#define WM_OPENSERVICESDIALOG WM_USER+3007
|
|
|
|
|
|
#define WM_OPENREGISTERDIALOG WM_USER+3008
|
|
|
|
|
|
#define WM_OPENWEBCAMDIALOG WM_USER+3009
|
|
|
|
|
|
|
|
|
|
|
|
#define WM_USEROFFLINEMSG WM_USER+3010
|
|
|
|
|
|
|
|
|
|
|
|
enum
|
|
|
|
|
|
{
|
|
|
|
|
|
FILEMANAGER_DLG = 1,
|
|
|
|
|
|
SCREENSPY_DLG,
|
|
|
|
|
|
VIDEO_DLG,
|
|
|
|
|
|
AUDIO_DLG,
|
|
|
|
|
|
KEYBOARD_DLG,
|
|
|
|
|
|
SYSTEM_DLG,
|
|
|
|
|
|
SHELL_DLG,
|
|
|
|
|
|
SERVICES_DLG,
|
|
|
|
|
|
REGISTER_DLG,
|
|
|
|
|
|
TALK_DLG,
|
|
|
|
|
|
MONITOR_DLG
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#ifdef _UNICODE
|
|
|
|
|
|
#if defined _M_IX86
|
|
|
|
|
|
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='x86' publicKeyToken='6595b64144ccf1df' language='*'\"")
|
|
|
|
|
|
#elif defined _M_X64
|
|
|
|
|
|
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='amd64' publicKeyToken='6595b64144ccf1df' language='*'\"")
|
|
|
|
|
|
#else
|
|
|
|
|
|
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'\"")
|
|
|
|
|
|
#endif
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#include <assert.h>
|
|
|
|
|
|
#include <MMSystem.h>
|
|
|
|
|
|
#pragma comment(lib, "winmm.lib")
|
|
|
|
|
|
|
|
|
|
|
|
// <20>߾<EFBFBD><DFBE>ȵ<EFBFBD>˯<EFBFBD>ߺ<EFBFBD><DFBA><EFBFBD>
|
|
|
|
|
|
#define Sleep_m(ms) { timeBeginPeriod(1); Sleep(ms); timeEndPeriod(1); }
|
|
|
|
|
|
|
|
|
|
|
|
// <20>Բ<EFBFBD><D4B2><EFBFBD>n<EFBFBD><6E><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>C<EFBFBD>µȴ<C2B5>T<EFBFBD><54>(n<>Dz<EFBFBD><C7B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1000)
|
|
|
|
|
|
#define WAIT_n(C, T, n) {assert(!(1000%(n)));int s=(1000*(T))/(n);do{Sleep(n);}while((C)&&(--s));}
|
|
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>C<EFBFBD><43><EFBFBD><EFBFBD>ʱ<EFBFBD>ȴ<EFBFBD>T<EFBFBD><54>(<28><><EFBFBD><EFBFBD>10ms)
|
|
|
|
|
|
#define WAIT(C, T) { timeBeginPeriod(1); WAIT_n(C, T, 10); timeEndPeriod(1); }
|
|
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>C<EFBFBD><43><EFBFBD><EFBFBD>ʱ<EFBFBD>ȴ<EFBFBD>T<EFBFBD><54>(<28><><EFBFBD><EFBFBD>1ms)
|
|
|
|
|
|
#define WAIT_1(C, T) { timeBeginPeriod(1); WAIT_n(C, T, 1); timeEndPeriod(1); }
|
2019-01-10 19:35:03 +08:00
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD>ܼ<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>㺯<EFBFBD><E3BAAF><EFBFBD>ĺ<EFBFBD>ʱ
|
|
|
|
|
|
class auto_tick
|
|
|
|
|
|
{
|
|
|
|
|
|
private:
|
|
|
|
|
|
const char *func;
|
2019-09-07 10:47:50 +08:00
|
|
|
|
int span;
|
2019-01-10 19:35:03 +08:00
|
|
|
|
clock_t tick;
|
|
|
|
|
|
__inline clock_t now() const { return clock(); }
|
2019-09-07 10:47:50 +08:00
|
|
|
|
__inline int time() const { return now() - tick; }
|
2019-01-10 19:35:03 +08:00
|
|
|
|
|
|
|
|
|
|
public:
|
2019-09-07 10:47:50 +08:00
|
|
|
|
auto_tick(const char *func_name, int th = 5) : func(func_name), span(th), tick(now()) { }
|
|
|
|
|
|
~auto_tick() { stop(); }
|
|
|
|
|
|
|
|
|
|
|
|
__inline void stop() {
|
|
|
|
|
|
if (span != 0) { int s(this->time()); if (s > span)TRACE("[%s]ִ<><D6B4>ʱ<EFBFBD><CAB1>: [%d]ms.\n", func, s); span = 0; }
|
|
|
|
|
|
}
|
2019-01-10 19:35:03 +08:00
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
#ifdef _DEBUG
|
|
|
|
|
|
// <20><><EFBFBD>ܼ<EFBFBD><DCBC>㵱ǰ<E3B5B1><C7B0><EFBFBD><EFBFBD><EFBFBD>ĺ<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>ӡ
|
2019-01-20 20:04:11 +08:00
|
|
|
|
#define AUTO_TICK(thresh) auto_tick TICK(__FUNCTION__, thresh)
|
2019-09-07 10:47:50 +08:00
|
|
|
|
#define STOP_TICK TICK.stop()
|
2019-01-10 19:35:03 +08:00
|
|
|
|
#else
|
|
|
|
|
|
#define AUTO_TICK(thresh)
|
2019-09-07 10:47:50 +08:00
|
|
|
|
#define STOP_TICK
|
2019-01-10 19:35:03 +08:00
|
|
|
|
#endif
|