debugout.c

来自「嵌入式系统开发 TOPPERS and JSP Kernel Release 」· C语言 代码 · 共 155 行

C
155
字号
/* *  TOPPERS/JSP Kernel *      Toyohashi Open Platform for Embedded Real-Time Systems/ *      Just Standard Profile Kernel *  *  Copyright (C) 2000-2002 by Embedded and Real-Time Systems Laboratory *                              Toyohashi Univ. of Technology, JAPAN *  *  惧淡螟侯涪荚は·Free Software Foundation によって给山されている  *  GNU General Public License の Version 2 に淡揭されている掘凤か·笆 *  布の(1)×(4)の掘凤を塔たす眷圭に嘎り·塑ソフトウェア∈塑ソフトウェ *  アを猖恃したものを崔むˉ笆布票じ∷を蝗脱ˇ剩澜ˇ猖恃ˇ浩芹邵∈笆布· *  网脱と钙ぶ∷することを痰浸で钓满するˉ *  (1) 塑ソフトウェアをソ〖スコ〖ドの妨で网脱する眷圭には·惧淡の螟侯 *      涪山绩·この网脱掘凤および布淡の痰瘦沮惮年が·そのままの妨でソ〖 *      スコ〖ド面に崔まれていることˉ *  (2) 塑ソフトウェアを浩网脱材墙なバイナリコ〖ド∈リロケ〖タブルオブ *      ジェクトファイルやライブラリなど∷の妨で网脱する眷圭には·网脱 *      に燃うドキュメント∈网脱荚マニュアルなど∷に·惧淡の螟侯涪山绩· *      この网脱掘凤および布淡の痰瘦沮惮年を非很することˉ *  (3) 塑ソフトウェアを浩网脱稍材墙なバイナリコ〖ドの妨または怠达に寥 *      み哈んだ妨で网脱する眷圭には·肌のいずれかの掘凤を塔たすことˉ *    (a) 网脱に燃うドキュメント∈网脱荚マニュアルなど∷に·惧淡の螟侯 *        涪山绩·この网脱掘凤および布淡の痰瘦沮惮年を非很することˉ *    (b) 网脱の妨轮を·侍に年める数恕によって·惧淡螟侯涪荚に鼠桂する *        ことˉ *  (4) 塑ソフトウェアの网脱により木儡弄または粗儡弄に栏じるいかなる禄 *      巢からも·惧淡螟侯涪荚を倘勒することˉ *  *  塑ソフトウェアは·痰瘦沮で捏丁されているものであるˉ惧淡螟侯涪荚は· *  塑ソフトウェアに簇して·その努脱材墙拉も崔めて·いかなる瘦沮も乖わ *  ないˉまた·塑ソフトウェアの网脱により木儡弄または粗儡弄に栏じたい *  かなる禄巢に簇しても·その勒扦を砷わないˉ *  *  @(#) $Id: debugout.c,v 1.3 2002/04/10 11:20:09 takayuki Exp $ */#include "debugout.h"#include "resource.h"#ifdef DEBUG_ENABLEstatic HANDLE DebugConsole;static HWND DialogHandle;LRESULT CALLBACK DebugOutDialogProc(HWND hDlg,UINT Msg,WPARAM wParam,LPARAM lParam){	switch(Msg)	{	case WM_INITDIALOG:		DebugConsole = GetDlgItem(hDlg,IDC_DEBUGOUT);		ShowWindow(hDlg,SW_SHOW);	case WM_SIZE:		{			RECT client;			GetClientRect(hDlg,&client);			MoveWindow(DebugConsole,0,0,client.right,client.bottom,TRUE);			break;		}	case WM_CLOSE:			/* Closing this dialog is restricted. */		break;	case WM_DESTROY:		DialogHandle = 0;		break;	case WM_QUIT:		DestroyWindow(hDlg);		break;		default:		return FALSE;	}	return TRUE;}void InitializeDebugServices(HINSTANCE hinst,HWND dlg){	int i;	DialogHandle = CreateDialog(hinst,MAKEINTRESOURCE(DEBUGOUTDIALOG),0l,DebugOutDialogProc);	i = GetLastError();	ShowWindow(DialogHandle,SW_SHOW);}void FinalizeDebugServices(void){	if(DialogHandle != 0l)		DestroyWindow(DialogHandle);}unsigned int DebugOut(LPCSTR str){	int i,j,k,l;	char buffer[1024];	i = GetWindowTextLength(DebugConsole);	if(i > DEBUG_LIMITTERUPPERBOUND)	{		SendMessage(DebugConsole, EM_SETSEL, 0, i - DEBUG_LIMITTERUPPERBOUND);		SendMessage(DebugConsole, EM_REPLACESEL, (WPARAM)FALSE, (LPARAM)"");	}	j = lstrlen(str);	while(j>0)	{		k = j > 512 ? 511 : j;		for(l=0;l<k;l++,str++)		{			if( (buffer[l] = *str) == '\n')			{				buffer[l] = '\r';				buffer[++l] = '\n';			}		}		buffer[l] = '\x0';		i = GetWindowTextLength(DebugConsole);		SendMessage(DebugConsole,EM_SETSEL,i,i);		SendMessage(DebugConsole,EM_REPLACESEL,(WPARAM)FALSE,(LPARAM)buffer);				j -= k;	}	return 1;/*	int i;	HANDLE mem;	char * buf;	i=OpenClipboard(DialogHandle);	i = lstrlen(str);	mem = GlobalAlloc(GMEM_MOVEABLE|GMEM_DDESHARE,i+1);	buf = GlobalLock(mem);	lstrcpyn(buf,str,i+1);	GlobalUnlock(mem);	i=SetClipboardData(CF_TEXT,mem);	CloseClipboard();	SendMessage(DebugConsole,WM_PASTE,0,0);	return (unsigned)i;*/}#endif

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?