OSDN Git Service

add tstools.
[rec10/rec10-git.git] / tstools / DtsEdit / src / debug.h
1 \r
2 #ifndef _MY_DEBUG_H\r
3 #define _MY_DEBUG_H 1\r
4 \r
5 #include <stdio.h>       /* vsprintf */\r
6 #include <windows.h>\r
7 \r
8 #ifdef _DEBUG\r
9 \r
10 #ifdef _cplusplus\r
11 extern "C" {\r
12 #endif\r
13 \r
14 #define DPRINTF_BUF_SZ  10240\r
15 static void SENDSTR(char *cMsg){\r
16         HWND hTgWnd1 = FindWindow("Notepad", "\96³\91è - \83\81\83\82\92 ");\r
17         hTgWnd1 = GetWindow(hTgWnd1, GW_CHILD);\r
18   \r
19         if(hTgWnd1 > 0){\r
20                 SendMessage(hTgWnd1, EM_REPLACESEL, NULL, (LPARAM)cMsg);\r
21         }\r
22 }\r
23 static void DUMP(char *tablename, unsigned char *data, DWORD size){\r
24         char buf1[60]   = {'\0'};\r
25         char *buf2              = (char*)calloc(1, size * 60);\r
26         DWORD i;\r
27 \r
28         //sprintf(buf2, "------ DUMP %s ------\r\n", tablename);\r
29         //for (int y=0; y<(size/16); y++){\r
30         //      sprintf(buf1, "%08X: %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X\r\n"\r
31         //              , data[y*16 + 0], data[y*16 + 1], data[y*16 + 2], data[y*16 + 3], data[y*16 + 4], data[y*16 + 5], data[y*16 + 6], data[y*16 + 7]\r
32         //              , data[y*16 + 8], data[y*16 + 9], data[y*16 +10], data[y*16 +11], data[y*16 +12], data[y*16 +13], data[y*16 +14], data[y*16 +15]\r
33         //              );\r
34         //      strcat(buf2, buf1);\r
35         //}\r
36 \r
37         _snprintf(buf2, size * 60, "------ DUMP %s ------", tablename);\r
38         for (i=0; i<size; i++){\r
39                 if ((i % 16) == 0){\r
40                         sprintf(buf1, "\r\n%02X", data[i]);\r
41                 }else{\r
42                         sprintf(buf1, " %02X", data[i]);\r
43                 }\r
44                 strcat(buf2, buf1);\r
45         }\r
46         strcat(buf2, "\r\n\r\n");\r
47         SENDSTR(buf2);\r
48         free(buf2);\r
49 }\r
50 static void DPRINTLN(char *fmt, ...)\r
51 {\r
52         va_list args;\r
53         char *buf1 = (char*)calloc(DPRINTF_BUF_SZ, sizeof(char));\r
54         char *buf2 = (char*)calloc(DPRINTF_BUF_SZ, sizeof(char));\r
55 \r
56         va_start(args, fmt);\r
57         _vsnprintf(buf1, DPRINTF_BUF_SZ, fmt, args);\r
58         va_end(args);\r
59         _snprintf(buf2, DPRINTF_BUF_SZ, "[0x%08X]\t%s\r\n" ,GetCurrentThreadId(), buf1);\r
60         //strcat(buf, "\r\n");\r
61         //OutputDebugString(buf);\r
62         //FILE *fp = fopen("_debug.txt", "ab");\r
63         //fwrite(buf, strlen(buf), 1, fp);\r
64         //fclose(fp);\r
65         SENDSTR(buf2);\r
66 \r
67         free(buf1);\r
68         free(buf2);\r
69 }\r
70 static void DPRINTF(char *fmt, ...)\r
71 {\r
72         va_list args;\r
73         char *buf1 = (char*)calloc(DPRINTF_BUF_SZ, sizeof(char));\r
74 \r
75         va_start(args, fmt);\r
76         _vsnprintf(buf1, DPRINTF_BUF_SZ, fmt, args);\r
77         va_end(args);\r
78 \r
79         //OutputDebugString(buf);\r
80         //FILE *fp = fopen("_debug.txt", "ab");\r
81         //fwrite(buf, strlen(buf), 1, fp);\r
82         //fclose(fp);\r
83         SENDSTR(buf1);\r
84 \r
85         free(buf1);\r
86 }\r
87 #else\r
88 static __inline void DPRINTLN(char *fmt, ...) { }\r
89 static __inline void DPRINTF(char *fmt, ...) { }\r
90 static __inline void DUMP(char *tablename, unsigned char* data, unsigned long size){ }\r
91 \r
92 #ifdef _cplusplus\r
93 } //extern "C"\r
94 #endif\r
95 \r
96 #endif //_DEBUG\r
97 \r
98 #endif //_MY_DEBUG_H