⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 wincecompat.c.svn-base

📁 这是一个用于解析xml文件的类库。使用这个类库
💻 SVN-BASE
字号:
/* * wincecompat.c : wince compatiblity module * * See Copyright for the status of this software. * * javier@tiresiassoft.com * * 17 Sep 2002  created */#include "wincecompat.h"#include "time.h"#include <windows.h>char *strError[]= {"Error 0","","No such file or directory","","","","","Arg list too long",	"Exec format error","Bad file number","","","Not enough core","Permission denied","","",	"","File exists","Cross-device link","","","","Invalid argument","","Too many open files",	"","","","No space left on device","","","","","Math argument","Result too large","",	"Resource deadlock would occur", "Unknown error under wince"};int errno=0;int read(int handle, char *buffer, unsigned int len){	return(fread(&buffer[0], len, 1, (FILE *) handle));}int write(int handle, const char *buffer, unsigned int len){	return(fwrite(&buffer[0], len,1,(FILE *) handle));}int open(const char *filename,int oflag, ...){	char mode[3]; /* mode[0] ="w/r/a"  mode[1]="+" */	mode[2]=0;	if ( oflag==(O_WRONLY|O_CREAT) )		mode[0]="w";	else if (oflag==O_RDONLY)		mode[0]="r";	return fopen(filename, mode);}int close(int handle){	return ( fclose((FILE *) handle) );}char *getenv( const char *varname ){	return NULL;}char *strerror(int errnum){	if (errnum>MAX_STRERROR)		return strError[MAX_STRERROR];	else		return strError[errnum];}int mblen(const char *mbstr, size_t count)
{
	const char *p = mbstr;
	size_t i;
	int    n=0;

	for( i=0; i<count; i++ )
	{
		if( *p=='\0' ) break;
		if( IsDBCSLeadByteEx( CP_ACP, *p ) )
			n+=2, p+=2;
		else
			n+=1, p+=1;
	}

	return n;
}

int
strcmpi (const char *s1, const char *s2)
{
	while (*s1 != '\0' && toupper(*s1) == toupper(*s2))
	{
		s1++;
		s2++;
	}

	return toupper(*(unsigned char *) s1) - toupper(*(unsigned char *) s2);
}

char *getcwd(char *buffer, size_t _size)
{
	TCHAR fileUnc[MAX_PATH+1];
	char* plast;

	char cwd[MAX_PATH+1] = "";
	if(cwd[0] == 0)
	{
		GetModuleFileName(NULL, fileUnc, MAX_PATH);
		WideCharToMultiByte(CP_ACP, 0, fileUnc, -1, cwd, MAX_PATH, NULL, NULL);
		plast = strrchr(cwd, '\\');
		if(plast)
			*plast = 0;
		/* Special trick to keep start menu clean... */
		if(_stricmp(cwd, "\\windows\\start menu") == 0)
			strcpy(cwd, "\\Apps");
	}
	if(buffer)
		strncpy(buffer, cwd, _size);
	return cwd;

}

size_t strftime(char *buffer, size_t size, const char *format, const struct tm *time)
{
	size_t pos = 0;
	char num[16] = "";

	buffer[0] = '\0';

	while (format[pos]) {
		if (format[pos] == '%' && format[pos + 1]) {
			switch (format[pos + 1]) {
				case 'a':
				case 'A':
				case 'b':
				case 'B':
				case 'c':
				case 'j':
				case 'U':
				case 'W':
				case 'x':
				case 'X':
				case 'z':
				case 'Z':
					num[0] = '\0';
					/* Unsupported */
					break;
				case '%d':
					_itoa(time->tm_mday, num, 10);
					break;
				case '%H':
					_itoa(time->tm_hour, num, 10);
					break;
				case '%I':
					_itoa((time->tm_hour % 12) + 1, num, 10);
					break;
				case '%m':
					_itoa(time->tm_mon, num, 10);
					break;
				case '%M':
					_itoa(time->tm_min, num, 10);
					break;
				case '%p':
					strcpy(num, ((time->tm_hour / 12) ? "A.M." : "P.M."));
					break;
				case '%S':
					_itoa(time->tm_sec, num, 10);
					break;
				case '%w':
					_itoa(time->tm_wday, num, 10);
					break;
				case '%y':
					_itoa(time->tm_year % 100, num, 10);
					break;
				case '%Y':
					_itoa(time->tm_year, num, 10);
					break;
				case '%%':
					strcpy(num, "%");
					break;
				default:
					num[0] = format[pos + 1];
					num[1] = '\0';
			}

			if (num)
				strncat(buffer, num, size);
			pos++;
		} else {
			size_t len = strlen(buffer);
			if (len + 1 < size) {
				buffer[len++] = format[pos];
				buffer[len] = '\0';
			} else  {
				return (strlen(buffer) + 1);
			}
		}
		pos++;
	}
	return (strlen(buffer) + 1);

}

⌨️ 快捷键说明

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