5128eecc9f 2011-02-23 kinaba: #ifndef AFX_KIUTIL_H__D2E1F380_468E_11D3_8D94_ECF8CA9E4339__INCLUDED_ 5128eecc9f 2011-02-23 kinaba: #define AFX_KIUTIL_H__D2E1F380_468E_11D3_8D94_ECF8CA9E4339__INCLUDED_ 5128eecc9f 2011-02-23 kinaba: 5128eecc9f 2011-02-23 kinaba: // ちょっと便利かも知れない関数群「kiutil」 5128eecc9f 2011-02-23 kinaba: // 5128eecc9f 2011-02-23 kinaba: // VC++ のツリーでひとまとめで表示させるためにクラス化 5128eecc9f 2011-02-23 kinaba: // しただけで、実は全部 public & static だったりする。(^^; 5128eecc9f 2011-02-23 kinaba: 5128eecc9f 2011-02-23 kinaba: class kiutil 5128eecc9f 2011-02-23 kinaba: { 5128eecc9f 2011-02-23 kinaba: public: 5128eecc9f 2011-02-23 kinaba: 5128eecc9f 2011-02-23 kinaba: // タイムスタンプ 5128eecc9f 2011-02-23 kinaba: 5128eecc9f 2011-02-23 kinaba: // WIN( 0.1 millisec from 1601.1.1 ) 5128eecc9f 2011-02-23 kinaba: static void timeSet( const char* fname, FILETIME* pft ); 5128eecc9f 2011-02-23 kinaba: // DOS( 0-4:day 5-8:month 9-15:year+1980, 0-4:sec/2 5-10:min 11-15:hour ) 5128eecc9f 2011-02-23 kinaba: static void timeSet( const char* fname, WORD date, WORD time ); 5128eecc9f 2011-02-23 kinaba: // UNIX( sec from 1970.1.1 ) 5128eecc9f 2011-02-23 kinaba: static void timeSet( const char* fname, DWORD sec ); 5128eecc9f 2011-02-23 kinaba: 5128eecc9f 2011-02-23 kinaba: // パス文字列 5128eecc9f 2011-02-23 kinaba: 5128eecc9f 2011-02-23 kinaba: // ↓最初に必ずコレを呼んでおくこと! 5128eecc9f 2011-02-23 kinaba: static void pathInit(); 5128eecc9f 2011-02-23 kinaba: 5128eecc9f 2011-02-23 kinaba: // 相対パスを与えると [不正文字除去],[複数階層makeDir] を行う 5128eecc9f 2011-02-23 kinaba: static char* pathMake( char* path ); 5128eecc9f 2011-02-23 kinaba: // 絶対パスを与えると [複数階層makeDir] 5128eecc9f 2011-02-23 kinaba: static void pathMakeAbs( char* path ); 5128eecc9f 2011-02-23 kinaba: // yに最後の\, dに最後の. の位置を入れる 5128eecc9f 2011-02-23 kinaba: static void pathSplit( const char* path, int* y, int* d ); 5128eecc9f 2011-02-23 kinaba: // 拡張子 5128eecc9f 2011-02-23 kinaba: static const char* pathExt( const char* path ); 5128eecc9f 2011-02-23 kinaba: // ファイル名 5128eecc9f 2011-02-23 kinaba: static const char* pathName( const char* path ); 5128eecc9f 2011-02-23 kinaba: 5128eecc9f 2011-02-23 kinaba: // window 5128eecc9f 2011-02-23 kinaba: 5128eecc9f 2011-02-23 kinaba: // 強制的に前面へ。( kazubon氏の TClock のソースより。感謝! ) 5128eecc9f 2011-02-23 kinaba: static void wndFront( HWND wnd ); 5128eecc9f 2011-02-23 kinaba: 5128eecc9f 2011-02-23 kinaba: // その他 5128eecc9f 2011-02-23 kinaba: 5128eecc9f 2011-02-23 kinaba: // fgets改訂版(CR/LF/CRLFを改行と認定。改行コードは含めない文字列を返す) 5128eecc9f 2011-02-23 kinaba: static char* getline( char* str, int size, FILE* fp ); 5128eecc9f 2011-02-23 kinaba: // 拡張子変換 5128eecc9f 2011-02-23 kinaba: static void getOriginalName( char* nw, const char* od, char* ext ); 5128eecc9f 2011-02-23 kinaba: // 安全なところに移ってからLoadLibrary 5128eecc9f 2011-02-23 kinaba: static HMODULE safepathLoadLibrary(LPCTSTR lpFileName) 5128eecc9f 2011-02-23 kinaba: { 5128eecc9f 2011-02-23 kinaba: kiPath original_cur(kiPath::Cur), sys(kiPath::Sys); 5128eecc9f 2011-02-23 kinaba: ::SetCurrentDirectory(sys); 5128eecc9f 2011-02-23 kinaba: HMODULE han = ::LoadLibrary(lpFileName); 5128eecc9f 2011-02-23 kinaba: ::SetCurrentDirectory(original_cur); 5128eecc9f 2011-02-23 kinaba: return han; 5128eecc9f 2011-02-23 kinaba: } 5128eecc9f 2011-02-23 kinaba: 5128eecc9f 2011-02-23 kinaba: // 変数 5128eecc9f 2011-02-23 kinaba: 5128eecc9f 2011-02-23 kinaba: private: 5128eecc9f 2011-02-23 kinaba: static char lb[256]; 5128eecc9f 2011-02-23 kinaba: }; 5128eecc9f 2011-02-23 kinaba: 5128eecc9f 2011-02-23 kinaba: #endif