--- /dev/null
+\r
+#ifndef _MY_DEBUG_H\r
+#define _MY_DEBUG_H 1\r
+\r
+#include <stdio.h> /* vsprintf */\r
+#include <windows.h>\r
+\r
+#ifdef _DEBUG\r
+\r
+#ifdef _cplusplus\r
+extern "C" {\r
+#endif\r
+\r
+#define DPRINTF_BUF_SZ 10240\r
+static void SENDSTR(char *cMsg){\r
+ HWND hTgWnd1 = FindWindow("Notepad", "\96³\91è - \83\81\83\82\92 ");\r
+ hTgWnd1 = GetWindow(hTgWnd1, GW_CHILD);\r
+ \r
+ if(hTgWnd1 > 0){\r
+ SendMessage(hTgWnd1, EM_REPLACESEL, NULL, (LPARAM)cMsg);\r
+ }\r
+}\r
+static void DUMP(char *tablename, unsigned char *data, DWORD size){\r
+ char buf1[60] = {'\0'};\r
+ char *buf2 = (char*)calloc(1, size * 60);\r
+ DWORD i;\r
+\r
+ //sprintf(buf2, "------ DUMP %s ------\r\n", tablename);\r
+ //for (int y=0; y<(size/16); y++){\r
+ // sprintf(buf1, "%08X: %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X\r\n"\r
+ // , 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
+ // , 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
+ // );\r
+ // strcat(buf2, buf1);\r
+ //}\r
+\r
+ _snprintf(buf2, size * 60, "------ DUMP %s ------", tablename);\r
+ for (i=0; i<size; i++){\r
+ if ((i % 16) == 0){\r
+ sprintf(buf1, "\r\n%02X", data[i]);\r
+ }else{\r
+ sprintf(buf1, " %02X", data[i]);\r
+ }\r
+ strcat(buf2, buf1);\r
+ }\r
+ strcat(buf2, "\r\n\r\n");\r
+ SENDSTR(buf2);\r
+ free(buf2);\r
+}\r
+static void DPRINTLN(char *fmt, ...)\r
+{\r
+ va_list args;\r
+ char *buf1 = (char*)calloc(DPRINTF_BUF_SZ, sizeof(char));\r
+ char *buf2 = (char*)calloc(DPRINTF_BUF_SZ, sizeof(char));\r
+\r
+ va_start(args, fmt);\r
+ _vsnprintf(buf1, DPRINTF_BUF_SZ, fmt, args);\r
+ va_end(args);\r
+ _snprintf(buf2, DPRINTF_BUF_SZ, "[0x%08X]\t%s\r\n" ,GetCurrentThreadId(), buf1);\r
+ //strcat(buf, "\r\n");\r
+ //OutputDebugString(buf);\r
+ //FILE *fp = fopen("_debug.txt", "ab");\r
+ //fwrite(buf, strlen(buf), 1, fp);\r
+ //fclose(fp);\r
+ SENDSTR(buf2);\r
+\r
+ free(buf1);\r
+ free(buf2);\r
+}\r
+static void DPRINTF(char *fmt, ...)\r
+{\r
+ va_list args;\r
+ char *buf1 = (char*)calloc(DPRINTF_BUF_SZ, sizeof(char));\r
+\r
+ va_start(args, fmt);\r
+ _vsnprintf(buf1, DPRINTF_BUF_SZ, fmt, args);\r
+ va_end(args);\r
+\r
+ //OutputDebugString(buf);\r
+ //FILE *fp = fopen("_debug.txt", "ab");\r
+ //fwrite(buf, strlen(buf), 1, fp);\r
+ //fclose(fp);\r
+ SENDSTR(buf1);\r
+\r
+ free(buf1);\r
+}\r
+#else\r
+static __inline void DPRINTLN(char *fmt, ...) { }\r
+static __inline void DPRINTF(char *fmt, ...) { }\r
+static __inline void DUMP(char *tablename, unsigned char* data, unsigned long size){ }\r
+\r
+#ifdef _cplusplus\r
+} //extern "C"\r
+#endif\r
+\r
+#endif //_DEBUG\r
+\r
+#endif //_MY_DEBUG_H
\ No newline at end of file