supplibce Windows CE 5.0 Standard SDK CRT supplementary library.

supplibceは、Windows CE 5.0: Standard Software Development Kit (SDK)のCランタイムライブラリ(CRT)に用意されていないものの一部を補充するライブラリです。

Microsoft (eMbedded) Visual C++でWindows CEアプリケーションの開発をするとすぐに思い知らされることがあります。9x系やNT系のWindowsのWin32 APIやCRT関数の多くは使用できるのですが、いくつかは実装されていなかったり、処理内容が異なったり、別のAPIになっていたり、CRTでは宣言だけされているものさえあります。

supplibceは、そんなCRTの憂鬱な状況をちょっとだけ緩和させるために用意した簡易実装ライブラリです。

代替実装

宣言だけされていながらごっそり実装されていない時間関数群を、ロケールやタイムゾーンに未対応ながら、OSで設定した地域の時刻には対応した実装をしています。FreeBSD libc由来のstrftimeも用意しています。

ファイル記述子の操作関数も、FILEの内部バッファが配列上に並んでいることを想定して、FILEまたはHANDLEに変換してFILE操作関数やWin32 APIで実装しています。

環境変数そのものがないWindows CEですが、NT系Windowsのユーザー環境変数を格納しているレジストリエントリを環境変数として取得できるgetenvも用意しています。

宣言一覧
assert.h1
direct.h1
errno.h1
fcntl.h1
io.h1
process.h1
stdio.h
stdlib.h
string.h
sys/stat.h1
sys/timeb.h1
sys/types.h1
sys/utime.h1
time.h
  1. SDKにヘッダファイルがないもの
  2. SDKのヘッダファイルに宣言されているものの、実装されていないもの
  3. 未仕様のFILE*変換で実装しています
  4. _filenoがstdlib.hにおいてvoid* __cdecl _fileno(FILE * )と宣言、および実装されているため
  5. _setmodeがstdlib.hにおいてint __cdecl _setmode( FILE *, int )と宣言、および実装されているため
  6. パーミッション引数を無視して実装しています
  7. レジストリ「HKCU\Environment」にあるREG_SZ型のエントリを参照します
注意事項

supplibce comes with ABSOLUTELY NO WARRANTY.

supplibceは、アプリケーションやライブラリをWindows CE向けにビルドすること(互換性確保)を目的に用意した