?? wince.c
字號:
#include "platform.h"
#include "mco.h"
char strbuf[2048];
char scr[2048] = "\n\n";
extern HWND hscr;
char input[256];
int inoffs = 0;
HANDLE InEvent;
timer_unit mco_system_get_current_time()
{
return (timer_unit)GetTickCount();
}
time_t __cdecl time(time_t* timer)
{
SYSTEMTIME t;
time_t tm;
GetLocalTime(&t);
tm = ((((((t.wYear - 1980)* 12) + t.wMonth)* 31+t.wDay)* 24+t.wHour)* 60+t.wMinute)* 60+t.wSecond;
if (timer != 0)
{
* timer = tm;
}
return tm;
}
static char str[100];
char* __cdecl ctime(time_t* pt)
{
time_t t = * pt;
time_t s = t % 60;
time_t m = (t = (t - s) / 60) % 60;
time_t h = (t = (t - m) / 60) % 24;
time_t d = (t = (t - h) / 24) % 31;
time_t mm = (t = (t - d) / 31) % 12;
time_t y = (t = (t - mm) / 12+1980);
sprintf(str, "%ld-%ld-%ld:%ld:%ld:%ld\n", d, mm, y, h, m, s);
return str;
}
int __cdecl _vprintf(const char* fmt, void* args)
{
int cnt = 0, i;
char* pi, * po;
vsprintf(strbuf, fmt, args);
for (po = scr + 2; * po; po++)
;
pi = strbuf;
for (i = 0; * pi;)
{
if (*pi == '\n')
{
i = 0;
}
*po++ = * pi++;
if ((++i) >= SCR_WIDTH)
{
*po++ = '\r';
* po++ = '\n';
i = 0;
}
}
*po = 0;
if (*(po - 1) == '\n')
{
Sleep(0);
}
for (pi = scr + 2; * pi; pi++)
{
if (*pi == '\n')
{
cnt++;
}
}
if (cnt > SCR_HEIGHT)
{
cnt = cnt - SCR_HEIGHT;
for (pi = scr + 2, i = 0; i < cnt;)
{
if (*pi == 0)
{
break;
}
if (*pi++ == '\n')
{
i++;
}
}
memcpy(scr + 2, pi, strlen(pi) + 1);
}
PostMessage(hscr, WM_PAINT, 0, 0);
return 0;
}
int __cdecl printf(const char* fmt, ...)
{
int res;
va_list argptr;
va_start(argptr, fmt);
res = _vprintf(fmt, argptr);
va_end(argptr);
return res;
}
char* __cdecl fgets(char* str, int size, FILE* file)
{
char* pi;
WaitForSingleObject(InEvent, INFINITE);
memcpy(str, input, inoffs + 1);
for (pi = scr + 2; * pi; pi++)
;
*pi++ = '\n';
* pi = 0;
inoffs = 0;
return str;
}
char* __cdecl gets(char* str)
{
char* pi;
WaitForSingleObject(InEvent, INFINITE);
memcpy(str, input, inoffs + 1);
for (pi = scr + 2; * pi; pi++)
;
*pi++ = '\n';
* pi = 0;
inoffs = 0;
return str;
}
int __cdecl getchar(void)
{
char* pi;
WaitForSingleObject(InEvent, INFINITE);
for (pi = scr + 2; * pi; pi++)
;
*pi++ = '\n';
* pi = 0;
return (int)input[0];
}
unsigned long __cdecl _beginthread(void(__cdecl* initialcode)(void*), unsigned stacksize, void* argument)
{
DWORD errcode;
DWORD tid;
HANDLE thdl;
/*
* Create the new thread. Bring it up in a suspended state so that
* the _thandle and _tid fields are filled in before execution
* starts.
*/
if ((thdl = CreateThread(NULL, 0, (unsigned long(__stdcall*)(void*))initialcode, argument, CREATE_SUSPENDED, &tid))
== 0L)
{
errcode = GetLastError();
goto error_return;
}
/*
* Start the new thread executing
*/
if (ResumeThread((HANDLE)thdl) == (DWORD)( - 1L))
{
errcode = GetLastError();
goto error_return;
}
/*
* Good return
*/
return (DWORD)thdl;
/*
* Error return
*/
error_return: return ((unsigned long) - 1L);
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -