ソフトウェア概論(Visual C++ 用ライブラリ)

ヘッダーファイルが無いので直ぐには使えませんが、以下のものを使ってます。
#include <time.h> // for gettime()

#ifndef WINCE
#include <shfolder.h>
#include <io.h> /* _chmod() */
#include <sys/stat.h> /* _S_IWRITE */
#endif
#define FOPEN _tfopen
#define FOPEN_READ _T("rb")
#define FOPEN_APPEND _T("a+b")

#ifdef WINCE
TCHAR *yGetFileNameToOpen(char *fn)
{
static TCHAR buf[MAX_PATH*2];
  memset(buf,0,sizeof(buf));
  DWORD dwFlags = MB_PRECOMPOSED | MB_USEGLYPHCHARS;// MB_COMPOSITE, MB_ERR_INVALID_CHARS
  int iReq = MultiByteToWideChar(CP_ACP,dwFlags,fn,strlen(fn),buf,0) * 2;
  MultiByteToWideChar(CP_ACP,dwFlags,fn,strlen(fn),buf,iReq);
  return buf;
}
#else
#define yGetFileNameToOpen(fn) fn
#endif /*WINCE*/

yocread

void yocread(char *fn, ULONG sp, char *str, int len)
{
  FILE *fh;
  fh = FOPEN(yGetFileNameToOpen(fn),FOPEN_READ);
  if( fh != NULL ) {
   if( sp > 0 )
    fseek(fh,sp,SEEK_SET);
   fread(str,sizeof(char),len,fh);
   fclose(fh);
  }
}

yfsize

ULONG yfsize( LPSTR filename )
{
  ULONG ret = 0;
  FILE *fh;
  fh = FOPEN(yGetFileNameToOpen(filename),FOPEN_READ);
  if( fh != NULL ) {
   ret = fseek(fh,0,SEEK_END);
#ifdef WINCE
   ret = ftell(fh);
#endif
   fclose(fh);
  }
  return ret;
}

yocwrite

void yocwrite(char *fn, ULONG sp, char *str, int len)
{
  FILE *fh;

  if( len <= 0 )
   len = strlen(str);
  fh = FOPEN(yGetFileNameToOpen(fn),FOPEN_APPEND); /* append binary */
  if( fh != NULL ) {
   fseek(fh,sp,SEEK_SET);
   fwrite(str,sizeof(char),len,fh);
   fclose(fh);
  }
}

YAllocMem

LPSTR YAllocMem( ULONG size )
{
  return (LPSTR)malloc(size);
}

YFreeMem

void YFreeMem( LPSTR ptr )
{
  if( ptr ) {
   free(ptr);
  }
}

Copyright(C) 2008 Y.Yonemura All rights reserved.