SEO [PR] 爆速!無料ブログ 無料ホームページ開設 無料ライブ放送

dKingyoUtility.h

解説を見る。
00001 
00333 /*
00334 \struct … C 構造体に対するドキュメント 
00335 \union … 共用体に対するドキュメント 
00336 \enum … 列挙型に対するドキュメント 
00337 \fn … 関数に対するドキュメント 
00338 \var … 変数、typedef、または列挙型の値に対するドキュメント 
00339 \def … #define に対するドキュメント 
00340 \file … ファイルに対するドキュメント 
00341 \namespace … 名前空間に対するドキュメント 
00342     
00343 int dDayOfWeekFast(int y, int m, int d) // 0 = Sunday , 1 <= m <= 12,  y > 1752 or so 
00344 {
00345     return y -= m < 3, (y + y/4 - y/100 + y/400 + "032503514624"[m-1]-'0' + d) % 7;
00346 }
00347 
00348 */
00349 
00350 
00351 
00352 #ifndef _dKingyoUtility__
00353 #define _dKingyoUtility__
00354 
00355 #ifndef DKINGYOUTILITY2_EXPORTS
00356 #   include <windows.h>
00357 #   include <stdio.h>
00358 #   include <math.h>
00359 #   include <LIMITS.H>
00360 #   include <memory.h>
00361 #   include <string.h>
00362 #   ifdef _MSC_VER
00363 #       include "dkutilDefinedC.h"
00364 #   else
00365 #       include "dkutilDefinedC.h"
00366 #   endif
00367 #else
00368 
00369 #   include "../dkutilDefinedC.h"
00370 
00371 #endif
00372 
00373 #   ifdef DKINGYOUTILITY2_EXPORTS
00374 #       define DKINGYOUTILITY2_API __declspec(dllexport)
00375 
00376 //#     define DKUTIL_INCLUDE_DKINGYO_DKINGYOUTILITY2_COMPILE 
00377 #   else
00378 #       define DKINGYOUTILITY2_API __declspec(dllimport)
00379 
00380 #   endif
00381 
00382 
00384 #ifdef __cplusplus
00385 #   define EXTERN_DU2 extern "C" DKINGYOUTILITY2_API
00386 #else
00387 #   define EXTERN_DU2 extern DKINGYOUTILITY2_API
00388 #endif
00389 
00390 
00391 
00392 
00393 //状況に応じてインラインを作る
00394 /*#ifdef inline
00395     #define DINLINE inline
00396     #ifdef __inline
00397         #undef DINLINE
00398         #define DINLINE __inline
00399     #endif
00400 #else
00401     #define DINLINE 
00402 #endif*/
00403 
00404 #ifndef DINLINE
00405 #   define DINLINE
00406 #endif
00407 
00408 
00409 
00410 #ifndef DKINGYOUTILITY2_EXPORTS//もし、これをd金魚がDLLにビルドするならば以下は定義しない
00411 
00412 #if 0
00413 //************************
00414 //滅殺、イナム郡
00415 
00416 
00417 enum{//OSのバージョンを取得するための列挙
00418     enuWindows3_1=0,
00419     enuWindowsNT3_51,
00420     enuWindowsNT4_0,
00421     enuWindows95,
00422     enuWindows98,
00423     enuWindows2000,
00424     enuWindowsMe,
00425     enuWindowsXP
00426 };
00427 
00428 //dOpenDialog関数用のフラグ。DialogTypeFlagにぶち込む奴
00429 enum{
00430     enu_dDialogOpen = 1,
00431     enu_dDialogSave,
00432     enu_dDialogTextSave,
00433 };
00435 enum{
00436     enuDKINGYO_BMPFILEHEADER_ADR,
00437     enuDKINGYO_BMPCOREHEADER_ADR,
00438     enuDKINGYO_BMPINFOHEADER_ADR,
00439     enuDKINGYO_BMPPALLETE_ADR,
00440     enuDKINGYO_BMPGRAPH_ADR,
00441 };
00442 
00443 
00444 #endif
00445 //マクロ集
00446 
00447 
00448 //メニューを破棄する
00449 //#define RELEASE_MENU(m) { if(m){DestroyMenu(m);} }
00450 
00452 #define VISUALING_LAST_ERROR() \
00453 {\
00454   LPVOID lpMsgBuf;\
00455   FormatMessage( FORMAT_MESSAGE_ALLOCATE_BUFFER|FORMAT_MESSAGE_FROM_SYSTEM|FORMAT_MESSAGE_IGNORE_INSERTS,\
00456                NULL, GetLastError(), MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), (LPTSTR)&lpMsgBuf, 0, NULL );\
00457   ::MessageBox( NULL, (LPCTSTR)lpMsgBuf, "Error", MB_OK | MB_ICONINFORMATION );\
00458   LocalFree( lpMsgBuf );\
00459 }
00460 
00461 
00462 #ifdef _DEBUG
00463 
00464 #   define DEBUGMB(s) MessageBox(NULL,s,"DEBUG MESSAGE BOX",MB_OK)
00465 #else
00466 #   define DEBUGMB(s)
00467 #endif
00468 
00469 //このDKINGYO_DEBUGをコメントアウトするとエラーの時、いろんなものが出力されなくなります。
00470 #define DKINGYO_DEBUG
00471 
00472 #ifdef DKINGYO_DEBUG
00473 
00474     #define MB(str) MessageBox(NULL,str,"Message",MB_OK)
00475 
00476     #define ODS(str) OutputDebugString(str)//OutputDebugString
00477 
00479     #ifndef DKINGYO_UTILITY_LIB_BUILD
00480     void ERROR_BOX(char *str,...){
00481             char s[512];
00482             va_list VaList ;
00483             va_start( VaList , str ) ;
00484             vsprintf( s , str , VaList ) ;
00485             va_end( VaList ) ;
00486             MessageBox(NULL,s,"ERROR_BOX",MB_OK);
00487     }
00488     #endif
00489 #else
00490     #define MB(str)
00491     #define ODS(str)
00492     #ifndef DKINGYO_UTILITY_LIB_BUILD
00493     void ERROR_BOX(char *str,...){}
00494     #endif
00495 #endif
00496 
00497 
00499 #define IDIOTICAL_SWAP(a,b) a^=b^=a^=b
00500 
00502 #define SWAP_NUM(a,b) \
00503     a = b - a ;\
00504     b -= a ;\
00505     a += b 
00506 
00508 #define STRUCT_MEMBER_OFFSET(p_type,field)     ((unsigned int)&(((p_type)NULL)->field))
00509 
00511 #define SET_RECT(rect, l, t, r, b) \
00512 {\
00513     rect##.left   = l;\
00514     rect##.top    = t;\
00515     rect##.right  = r;\
00516     rect##.bottom = b;\
00517 }
00518 
00519 #define NULL_CHAR_ARRAY(s) memset((void *)s,0,sizeof(s))
00520 
00548 
00549 #define SET_VA_LIST(buff,buffnum,origin) \
00550     va_list VaList;\
00551     va_start( VaList , origin ) ;\
00552     _vsnprintf( buff ,buffnum, origin , VaList ) ;\
00553     va_end( VaList ) 
00554 
00559 enum eKeyState
00560 {
00561     KEY_STATE_FREE = 0,                     
00562     KEY_STATE_PULL,                     
00563     KEY_STATE_PUSH,                     
00564     KEY_STATE_HOLD,                     
00565 };
00566 
00567 #endif // end of DKINGYOUTILITY_EXPORTS
00568 
00569 
00570 
00571 
00572 
00573 
00574 
00575 //***********************
00576 //基本形
00577 
00578 //EXTERN_DU2 BOOL CharOverflowCheck(const char *str,char *str2,UINT memory_size);
00584 
00585 EXTERN_DU2 void BitIsVisualized( char *buff,size_t buffbyte,unsigned int dt );
00591 EXTERN_DU2 DINLINE char *GetBOOLeanChar(BOOL set);
00592 
00599 
00600 EXTERN_DU2 ULONG A16ToUl(const char *s);
00608 EXTERN_DU2 void A16ToUll(const char *s,ULONG *upper,ULONG *lower);
00615 EXTERN_DU2 void A16ToUll2(const char *s,char *ptr);
00616 //********************
00617 //数学系
00618 
00628 EXTERN_DU2 int CreateArthimeticProgression(int *array,DWORD num,int a,int d);
00629 
00641 EXTERN_DU2 int CreateGeometricProgression(int *array,DWORD num,int a,int r);
00642     
00655 EXTERN_DU2 int CreateRandomNumberProgression(
00656         int *array,
00657         DWORD num,
00658         int min,int max,
00659         int (*rand_func_callback)(int min_,int max_));
00660 
00662 EXTERN_DU2 DINLINE short GetAngle(int mx,int my,int sx,int sy);
00663 
00664 
00665 //乱数、ランダム^^
00667 EXTERN_DU2 int dkingyo_rand_(int *);
00672 EXTERN_DU2 DINLINE int dRand(int x,int *seed);
00678 EXTERN_DU2 int dRandDomain(int min,int max,int *seed);
00680 EXTERN_DU2 void OnlyFor_dRandDomainFunc_TheArgumentOfMINAndMaxIsObtainedAsARandomValue
00681         (int *min,int *max,int *seed);
00682 
00692 
00693 EXTERN_DU2 float dCos(float f);
00695 EXTERN_DU2 float dSin(float f);
00696 
00698 EXTERN_DU2 int d360To256( int angle );
00700 EXTERN_DU2 double dDegreeToRadian(int angle);
00702 EXTERN_DU2 int dRadianToDegree(double radian);
00704 EXTERN_DU2 float dAngleToCos( int angle );
00706 EXTERN_DU2 float dAngleToSin( int angle );
00708 EXTERN_DU2 float dGetPAI();
00710 EXTERN_DU2 double dGetDoublePAI();
00712 EXTERN_DU2 void dSinCos( long angle, float *pSin, float *pCos );
00713 
00714 
00715 
00716 
00718 EXTERN_DU2 void dSRandMT(ULONG seed);
00720 EXTERN_DU2 ULONG dRandMT();
00721 
00722 
00727 
00728 //EXTERN_DU2 DWORD dCreateMTRand(UINT seed);
00733 
00734 //EXTERN_DU2 int dSetSeedMTRand(DWORD handle,UINT seed);
00739 
00740 //EXTERN_DU2 ULONG dGetRandMTRand(DWORD handle);
00741 
00746 
00747 //EXTERN_DU2 int dDeleteMTRand(DWORD handle);
00748 
00749 
00750 //***************************
00751 //ファイル、ディレクトリ操作系
00752 //CureentDirectorySetFunction
00754 EXTERN_DU2 BOOL dSetCurrentDirectory(void);
00755 
00757 EXTERN_DU2 int dCurrentDirectoryPlusFileName(char *buff,size_t buffsize,char *fielname);
00758 
00759 
00773 
00774 EXTERN_DU2 int dOpenFileDialog( LPSTR lpFileName,LPSTR lpPath,
00775                             LPCTSTR lpstrFilter,LPCTSTR lpstrDefExt,
00776                             HWND hDlg); //ファイルオープン用ダイアログ
00778 EXTERN_DU2 int dSaveFileDialog( LPSTR lpFileName,LPSTR lpPath,
00779                            LPCTSTR lpstrFilter,LPCTSTR lpstrDefExt,
00780                            HWND hDlg);//ファイルセーブ用ダイアログ
00782 EXTERN_DU2 int dSaveTextFileDialog( LPSTR lpFileName,LPSTR lpPath,
00783                                HWND hDlg);//テキストファイル保存用ダイアログ
00784 
00785 //**********************************************************
00786 //画像系
00787 //**********************************************************
00788 //GetBitmapInfoH
00790 EXTERN_DU2 int dGetBmpInfo(char *filename,BITMAP *bm);
00791 
00796 
00797 EXTERN_DU2 int isWindowsBmpDU2(char *array);
00798 
00803 
00804 EXTERN_DU2 WORD dGetBmpBitCount(char *array);
00805 
00810 
00811 EXTERN_DU2 BOOL isBmpPaletteDU2(char *array);
00816 
00817 EXTERN_DU2 char *dGetBmpPalleteAddress(char *array);
00823 
00824 EXTERN_DU2 char *dGetBmpDataAddress(char *array,int ets);
00829 
00830 EXTERN_DU2 BITMAPINFOHEADER *dGetBmpInfoHeader(char *array);
00831 
00832 
00834 EXTERN_DU2 void dIdioticalTransform1(int width,int height,int inc,void *point,BOOL flag,ULONG *seed);
00846 
00847 EXTERN_DU2 int dBmpIdioticalEncode1(int width,int height,int bit,char *bmp,ULONG *seed);
00848 
00856 
00857 EXTERN_DU2 int dBmpIdioticalDecode1(int width,int height,int bit,char *bmp,ULONG *seed);
00858 
00859 
00869 EXTERN_DU2 int dBmpToYourFormat(char *bmpadr,size_t bmpadrsize,char *array,size_t arraysize,
00870                                         short WBMPSig,short OS2Sig);
00871 
00883 EXTERN_DU2 int dYourFormatToBmp(char *yourptr,size_t yourptrsize,char *array,size_t arraysize,
00884                                                 short WBMPSig,short OS2Sig);
00885 
00892 EXTERN_DU2 int dBmpFileToYourFormatFile(char *bmpname,char *wfilename,char *array,size_t arraysize,
00893                                             short WBMPSig,short OS2Sig);
00894 
00899 EXTERN_DU2 int dYourFormatFileToBmpFile(char *yourfilename,char *wbmpfilename,
00900                                                         char *array,size_t arraysize,
00901                                                         short WBMPSig,short OS2Sig);
00902 
00903 
00904 
00905 
00906 //システム情報等取得系
00940 
00941 EXTERN_DU2 int _dGetOSVersion(void);
00942 
00951 
00952 EXTERN_DU2 BOOL GetClipboardText(char *pstrMemory,DWORD size);
00953 
00954 
00967 
00968 EXTERN_DU2 void dGetCharOfTimeUpToMinute(char *buff,size_t buffsize,BOOL Sysflag);
00971 EXTERN_DU2 void dGetCharOfMemoPadTypeTime(char *buff,size_t buffsize);
00973 EXTERN_DU2 void dGetCharOfSystemTimeAll(char *buff,size_t buffsize);
00976 EXTERN_DU2 void dGetCharOfLocalTimeAllJapanese(char *buff,size_t buffsize);
00977 
00978 
00979 
00980 
00982 EXTERN_DU2 UINT dCreateDebugStringTimer();
00987 
00988 EXTERN_DU2 void dDeleteDebugStringTimer(UINT h);
00989 
00990 
00991 
00992 
00993 
00994 
00995 
00996 
00997 //*********************************
00998 //ファイル等保存系
00999 //BinarySaveFunction
01008 //#ifdef __cplusplus
01009 //EXTERN_DU2 BOOL dSaveBinaryStructureObject(void *data,int size,char *fname, char *mode="wb" );
01010 //#else
01011 EXTERN_DU2 BOOL dSaveBinaryStructureObject(void *data,int size,char *fname, char *mode );
01012 //#endif
01020 //#ifdef __cplusplus
01021 //EXTERN_DU2 BOOL dGetBinaryStructureObject(void *data,int size,char *fname, char *mode="rb" );
01022 //#else
01023 EXTERN_DU2 BOOL dGetBinaryStructureObject(void *data,int size,char *fname, char *mode );
01024 //#endif
01025 //Win32API用
01033 
01034 EXTERN_DU2 int SaveWin32APIFile(char *filename,void *filedata,size_t size);
01041 EXTERN_DU2 int LoadWin32APIFile(char *filename,void *Buffer,size_t size);
01042 
01043 /*
01044 @param filename[in] FileName
01045 @param buff[out] CSVファイルからぶっこ抜いた数字データの配列を入れるバッファ
01046 @param buffnum[in] バッファの数(配列単位)(バイト単位ではありません)
01047 */
01048 //CSV形式のファイルから数字を読み込む。文字列も入っているCSVファイルは全部読み込めない。
01049 //EXTERN_DU2 int LoadCSV_NUM(char *filename,int *buff,size_t buffnum);
01050 
01057 
01058 EXTERN_DU2 BOOL dGetFileSizeHighLow(char *str,DWORD *GetSizeHigh,DWORD *GetSizeLow);
01059 
01063 
01064 EXTERN_DU2 DWORD dGetFileSizeMini(char *str);
01065 
01066 //ErrorLogを吐く
01068 EXTERN_DU2 BOOL dInitLog( char *filename );
01070 EXTERN_DU2 BOOL dAddLog( char *filename,char *str , ... );
01071 
01073 EXTERN_DU2 BOOL dOutputDebugString(char *str,...);
01074 
01075 //レジストリ系
01076 EXTERN_DU2 BOOL dSaveRegData(LPCTSTR lpSubKey,LPCTSTR lpValueName,
01077                  DWORD dwType,CONST BYTE *lpData,   DWORD cbData);
01078 EXTERN_DU2 BOOL dGetRegData(LPCTSTR lpSubKey,LPTSTR lpValueName,LPDWORD lpType,
01079                 LPBYTE lpData,LPDWORD lpcbData);
01080 EXTERN_DU2 BOOL dDeleteValueRegData(LPCTSTR lpSubKey,LPTSTR lpValueName);
01081 EXTERN_DU2 BOOL dDeleteRegData(LPCTSTR lpSubKey);
01082 
01083 //ソート系
01089 
01090 EXTERN_DU2 void dQuickSort_CharType(int n,char *p);
01092 EXTERN_DU2 void dQuickSort_UCharType(int n,unsigned char *p);
01094 EXTERN_DU2 void dQuickSort_IntType(int n,int *p);
01096 EXTERN_DU2 void dQuickSort_UIntType(int n,unsigned int *p);
01098 EXTERN_DU2 void dQuickSort_LongType(int n,long *p);
01100 EXTERN_DU2 void dQuickSort_ULongType(int n,unsigned long *p);
01102 EXTERN_DU2 void dQuickSort_FloatType(int n,float *p);
01104 EXTERN_DU2 void dQuickSort_DoubleType(int n,double *p);
01105 
01106 //ソート系
01112 
01113 EXTERN_DU2 void dQuickSortReverse_CharType(int n,char *p);
01115 EXTERN_DU2 void dQuickSortReverse_UCharType(int n,unsigned char *p);
01117 EXTERN_DU2 void dQuickSortReverse_IntType(int n,int *p);
01119 EXTERN_DU2 void dQuickSortReverse_UIntType(int n,unsigned int *p);
01121 EXTERN_DU2 void dQuickSortReverse_LongType(int n,long *p);
01123 EXTERN_DU2 void dQuickSortReverse_ULongType(int n,unsigned long *p);
01125 EXTERN_DU2 void dQuickSortReverse_FloatType(int n,float *p);
01127 EXTERN_DU2 void dQuickSortReverse_DoubleType(int n,double *p);
01128 
01129 
01130 //**********************************************************
01131 //ついに出た!マルチメディア系関数
01132 //**********************************************************
01133 
01139 
01140 EXTERN_DU2 int dOggFileToWaveFile(char *oggfilename,char *wavefilename);
01247 
01248 EXTERN_DU2 int dOggFileToWaveFileCallBack(char *oggfilename,char *wavefilename,OGG_CALLBACK_DU callback);
01249 
01260 EXTERN_DU2 int dOggFileToWaveMemory(char *oggfilename,char *buff,size_t buffsize,int wordbit);
01261 
01268 
01269 int CalcDecodedBuffSize(char *oggfilename,size_t *size,int word);
01270 
01271 //**********************************************************
01272 //メモリ系かな?
01273 //**********************************************************
01274 
01275 
01288 
01289 EXTERN_DU2 int dInit_MemoryLeakCheckAllocator(char *title,char *fullpath);
01290 
01295 
01296 #define dMLCAlloc(s) dMLCAllocBase(s,__FILE__,__LINE__)
01297 
01298 EXTERN_DU2 void *dMLCAllocBase(size_t size,char *file,UINT line);
01300 EXTERN_DU2 void dMLCFree(void *p);
01302 EXTERN_DU2 void dMLCFreeLogRelease();
01303 
01306 EXTERN_DU2 void dEnd_MemoryLeakCheckAllocator();
01307 
01308 
01310 EXTERN_DU2 int dInit_SingleList(DKINGYOUTILITY2_SINGLE_LIST *);
01312 EXTERN_DU2 int dEnd_SingleList(DKINGYOUTILITY2_SINGLE_LIST *);
01313 
01314 //**********************************************************
01315 //以下は葉迩倭氏のLunaを再利用、改造したものです。Lunaの転載使用は認められています。
01316 //葉迩倭氏に感謝。
01317 //**********************************************************
01326 EXTERN_DU2 BOOL dCheckVolumeLabel( char *pLabel, char *pPath ,size_t pPathSize);
01336 EXTERN_DU2 BOOL dSetWallPaper( char *pFile, long Type, BOOL IsReboot );
01343 EXTERN_DU2 BOOL dRunApplication( char *pDir, char *pAppName );
01351 EXTERN_DU2 void dOpenBrowser( char *pURL );
01356 EXTERN_DU2 void dGetWindowsDir( char *pDir );
01367 EXTERN_DU2 BOOL dCopyFile( char *pSrc, char *pDst );
01373 EXTERN_DU2 void dDeleteFile( char *pSrc );
01374 //dGetFileSizeの方が優秀なので・・・
01375 //EXTERN_DU2 unsigned long GetFileSize( char *pSrc );
01376 
01386 EXTERN_DU2 BOOL dEncodeSaveData( char *pFile, void *pData, unsigned long Size );
01395 EXTERN_DU2 BOOL dDecodeLoadData( char *pFile, void *pData, unsigned long Size );
01401 EXTERN_DU2 BOOL dFolderSelect( char *pDir ,HWND WindowHandle);
01414 EXTERN_DU2 BOOL dFileOpenDialog( char *pPath, char *pTitle, char *pFilter, char *pExt ,HWND WindowHandle);
01415 
01431 EXTERN_DU2 BOOL dFileSaveDialog( char *pPath, char *pTitle, char *pFilter, char *pExt ,HWND WindowHandle);
01439 EXTERN_DU2 BOOL dCreateLinkFile( char *pShortcutFile, char *pDescription, char *pTargetFile );
01440 
01446 EXTERN_DU2 BOOL dGetDesktopFolder( char *pPath );
01447 
01452 EXTERN_DU2 void dSetShowIME( BOOL flag );
01458 EXTERN_DU2 BOOL dFileExist( char *pFile );
01459 
01464 EXTERN_DU2 BOOL dCreateDirectory( char *pPath );
01465 
01471 EXTERN_DU2 void dGetMemorySize( unsigned long *pTotalMem, unsigned long *pFreeMem );
01472 
01480 EXTERN_DU2 BOOL dOpenColorDialog( long *pR, long *pG, long *pB ,HWND WindowHandle);
01481 
01494 EXTERN_DU2 void dGetLocalTime( long *pYear, long *pMonth, long *pWeekDay, long *pDay, long *pHour, long *pMinute, long *pSecond, long *pMilliSecond );
01495 
01501 EXTERN_DU2 long dDayOfMonth( long year, long month );
01502 
01508 EXTERN_DU2 long dDayOfWeek( long year, long month );
01515 EXTERN_DU2 void dKeyCheck( int *State, unsigned long KeyNo );
01522 EXTERN_DU2 void dChangeEndian( void *pData, unsigned long Bytes );
01523 
01524 
01525 EXTERN_DU2 BOOL dInitCPU_INFO(DKINGYOUTILITY2_CPU_INFO *);
01526     
01528 EXTERN_DU2 BOOL isMMX_DU();
01530 EXTERN_DU2 BOOL isMMX2_DU();
01532 EXTERN_DU2 BOOL isSSE_DU();
01534 EXTERN_DU2 BOOL isSSE2_DU();
01536 EXTERN_DU2 BOOL is3DNOW_DU();
01538 EXTERN_DU2 BOOL isE3DNOW_DU();
01540 EXTERN_DU2 long dGetCPUClock();
01542 EXTERN_DU2 BOOL isFPU_DU();
01544 EXTERN_DU2 BOOL isTSC_DU();
01546 EXTERN_DU2 BOOL isCPUID_DU();
01551 
01552 EXTERN_DU2 void dCopyCPUName(char *buff,size_t buffsize);
01555 EXTERN_DU2 void dCopyCPUType(char *buff,size_t buffsize);
01556 
01567 
01568 
01569 EXTERN_DU2 void dCopyCPUInfo(char *buff,size_t buffsize);
01570 
01571 /**********************************************************
01572 //以下はhttp://www.hidecnet.ne.jp/~sinzan/index.htmの
01573 //水無瀬の部屋から頂いたものです。使用方法は水無瀬の部屋のサンプルを見てみると良いでしょう。
01574 
01575 //以下の文章は水無瀬の部屋 Programming Tipsより引用
01576 
01577 //例題, Tips, その他の解決法, 面白い情報, バグレポートなど随時募集中です。
01578 //水無瀬の部屋で公開されている Tips は各自の責任で参照・改変・再配布していただいて結構です。
01579 //質問のメール等いただければ答えられる範囲でお返事します。
01580 //*********************************************************/
01581 
01592 EXTERN_DU2 int isJMS( const char *str, int nPos );
01593 
01595 EXTERN_DU2 char *strtail( const char *strstrstr );
01596 
01597 
01600 EXTERN_DU2 char *GetFileExtension( const char *PathName );
01601 
01602 
01604 EXTERN_DU2 void memswap( void *va, void *vb, size_t size );
01605 
01606 
01609 EXTERN_DU2 void memreverse( void *array, size_t num, size_t size );
01610 
01613 EXTERN_DU2 void memrrotate( void *array, size_t shift, size_t num, size_t size );
01614 
01615 
01618 EXTERN_DU2 void memlrotate( void *array, size_t shift, size_t num, size_t size );
01619 
01620 
01623 EXTERN_DU2 DINLINE int IsLeapYear( int Year );
01624 
01625 
01631 
01632 EXTERN_DU2 DINLINE int IsGoodDate( int Year, int Month, int Day );
01633 
01634 
01637 EXTERN_DU2 DINLINE int DaysInMonth( int nYear, int nMonth );
01638 
01639 
01642 EXTERN_DU2 DINLINE int IsGregory( int Year, int Month, int Day );
01643 
01644 
01647 EXTERN_DU2 int gcd( int m, int n );
01648 
01651 EXTERN_DU2 int lcm( int m, int n );
01652 
01653 
01654 #endif
01655 
01656 

dKingyoUtility2に対してThu Sep 25 21:43:22 2003に生成されました。 doxygen1.3