// Riff.cpp : 콘솔응용프로그램에대한진입점을정의합니다.

//

 

#include "stdafx.h"

#include <string.h>

 

/////////////////////////////////////////////////////////////////////////////

//===========================================================================

typedef unsigned int       uint32_t;

typedef unsigned short int uint16_t;

typedef signed   short int int16_t;

typedef signed         int int32_t;

typedef unsigned char      byte_t;

 

inline uint32_t convert_endian_4byte (uint32_t v)

{

        return (((v>>24)&0xff)       )|

               (((v>>16)&0xff) << 8  )|

               (((v>> 8)&0xff) << 16 )|

               (((v    )&0xff) << 24 );

}

 

/////////////////////////////////////////////////////////////////////////////

//===========================================================================

const uint32_t FOURCC_RIFF = 0x46464952; 

const uint32_t FOURCC_AVI  = 0x20495641; 

const uint32_t FOURCC_LIST = 0x5453494C; 

const uint32_t FOURCC_hdrl = 0x6C726468; 

const uint32_t FOURCC_avih = 0x68697661; 

const uint32_t FOURCC_strl = 0x6C727473; 

const uint32_t FOURCC_strh = 0x68727473; 

const uint32_t FOURCC_strf = 0x66727473; 

const uint32_t FOURCC_STRD = 0x64727473; 

const uint32_t FOURCC_vids = 0x73646976; 

const uint32_t FOURCC_auds = 0x73647561; 

const uint32_t FOURCC_INFO = 0x4F464E49; 

const uint32_t FOURCC_ISFT = 0x54465349; 

const uint32_t FOURCC_idx1 = 0x31786469; 

const uint32_t FOURCC_movi = 0x69766F6D; 

const uint32_t FOURCC_JUNK = 0x4B4E554A; 

const uint32_t FOURCC_vprp = 0x70727076; 

const uint32_t FOURCC_PAD  = 0x20444150; 

const uint32_t FOURCC_DIV3 = 861292868; 

const uint32_t FOURCC_DIVX = 1482049860; 

const uint32_t FOURCC_XVID = 1145656920; 

const uint32_t FOURCC_DX50 = 808802372; 

 

#define FOURCC(a,b,c,d) (((a)<<24)|((b)<<16)|((c)<<8)|(d))

 

/////////////////////////////////////////////////////////////////////////////

//===========================================================================

typedef struct _riff_header_t

{

        uint32_t riff ;

        uint32_t size ;

        uint32_t type ;

} riff_header_t;

 

typedef struct _list_header_t

{

        uint32_t list   ;

        uint32_t size   ;

        uint32_t fourcc ;

} list_header_t;

 

typedef struct _chunk_header_t

{

        uint32_t fourcc ;

        uint32_t size   ;

} chunk_header_t;

 

/////////////////////////////////////////////////////////////////////////////

//===========================================================================

typedef struct _MainAVIHeader_t

{

        uint32_t MicroSecPerFrame;   // frame display rate (or 0)

        uint32_t MaxBytesPerSec;     // max. transfer rate

        uint32_t PaddingGranularity; // pad to multiples of this size;

        uint32_t Flags;              // the ever-present flags

        uint32_t TotalFrames;        // # frames in file

        uint32_t InitialFrames;

        uint32_t Streams;

        uint32_t SuggestedBufferSize;

        uint32_t Width;

        uint32_t Height;

        uint32_t Reserved[4];

} MainAVIHeader_t;

 

typedef struct _RECT_t

{ 

    int16_t left; 

    int16_t top;  

    int16_t right;

    int16_t bottom;

} RECT_t; 

 

typedef struct _AVIStreamHeader_t

{             

    uint32_t fccType;

    uint32_t fccHandler;        

    uint32_t Flags;             

    uint16_t Priority;          

    uint16_t Language;          

    uint32_t InitialFrames;     

    uint32_t Scale;             

    uint32_t Rate;              

    uint32_t Start;             

    uint32_t Length;            

    uint32_t SuggestedBufferSize;

    uint32_t Quality;           

    uint32_t SampleSize;        

    RECT_t   FrameRect;         

} AVIStreamHeader_t; 

 

// strl - strh==vids  strf

typedef struct _BitmapInfoHeader_t

{ 

    uint32_t  biSize; 

    int32_t   biWidth; 

    int32_t   biHeight; 

    uint16_t  biPlanes; 

    uint16_t  biBitCount; 

    uint32_t  biCompression; 

    uint32_t  biSizeImage; 

    int32_t   biXPelsPerMeter; 

    int32_t   biYPelsPerMeter; 

    uint32_t  biClrUsed; 

    uint32_t  biClrImportant; 

} BitmapInfoHeader_t; 

 

// strl - strh==auds  strf

typedef struct _WaveFormatEx_t

{ 

    uint16_t FormatTag; 

    uint16_t Channels;        

    uint32_t SamplesPerSec;  

    uint32_t AvgBytesPerSec; 

    uint16_t BlockAlign;      

    uint16_t BitsPerSample;   

    uint16_t Size;           

} WaveFormatEx_t;

 

// AVI

typedef struct _avi_info_t

{

        uint32_t HasVideo;

        uint32_t HasAudio;

 

        uint32_t avi_size;

        uint32_t movi_size;

       

        uint32_t audio_data_size;

        uint32_t audio_data_count;

        uint32_t video_data_size;

        uint32_t video_data_count;

 

        MainAVIHeader_t    Header;

        AVIStreamHeader_t  Video;             // strh

        BitmapInfoHeader_t VideoBitmapInfo;   // strf

        AVIStreamHeader_t  Audio;             // strh

        WaveFormatEx_t     AudioWaveFormatEx; // strf

} avi_info_t;

 

bool read_avi_header (const char* filepath, avi_info_t* ai)

{

        FILE* fp;

 

        fp = fopen (filepath, "rb");

        if (0==fp)

        {

               return false;

        }

 

        //--------------------------------------------------------------------------

        // RIFF header

        //--------------------------------------------------------------------------

        riff_header_t riff_header;

 

        // [RIFF] size [AVI ]

        fread(&riff_header, sizeof(riff_header), 1, fp);

        printf ("%c%c%c%c %d %c%c%c%c \r\n",

               (riff_header.riff>> 0)&0xff,

               (riff_header.riff>> 8)&0xff,

               (riff_header.riff>>16)&0xff,

               (riff_header.riff>>24)&0xff,

                riff_header.size ,

               (riff_header.type>> 0)&0xff,

               (riff_header.type>> 8)&0xff,

               (riff_header.type>>16)&0xff,

               (riff_header.type>>24)&0xff

                );

 

        if (riff_header.riff != 0x46464952) // "RIFF"

        {

               fclose (fp);

               return false;

        }

 

        if (riff_header.type != 0x20495641) // "AVI "

        {

               fclose (fp);

               return false;

        }

        ai->avi_size = riff_header.size;

 

        //--------------------------------------------------------------------------

        // RIFF body

        //--------------------------------------------------------------------------

        int32_t  seek_size;

 

        uint32_t id;

        int32_t  size;

        uint32_t fourcc;

 

        uint32_t data_size;

 

        MainAVIHeader_t    MainAVIHeader;

        AVIStreamHeader_t  AVIStreamHeader;

        BitmapInfoHeader_t BitmapInfoHeader;

        WaveFormatEx_t     WaveFormatEx;

        uint32_t           strh = 0;

 

        while ( !feof(fp) )

        {

               printf ("%8d: ", ftell (fp));

 

               if (0==fread(&id, 4, 1, fp))

               {

                       break;

               }

               if (0==fread(&size,4, 1, fp))

               {

                       break;

               }

               printf ("<%c%c%c%c> %d \r\n",

                       (id>> 0)&0xff,

                       (id>> 8)&0xff,

                       (id>>16)&0xff,

                       (id>>24)&0xff,

                       size        );

               if (0==id)

               {

                       break;

               }

               if (0>=size)

               {

                       break;

               }

 

               // "LIST"

               if (id==0x5453494c)

               {

                       if (0==fread(&fourcc,  4, 1, fp))

                       {

                              break;

                       }

 

                       printf ("          %c%c%c%c\r\n",

                              (fourcc>> 0)&0xff,

                              (fourcc>> 8)&0xff,

                              (fourcc>>16)&0xff,

                              (fourcc>>24)&0xff);

 

                       if (fourcc == 0x69766F6D)

                       {

                              ai->movi_size = size;

                       }

               }

               else

               {

                       seek_size = (int32_t) size;

                       data_size = (int32_t) size;

 

                       // "avih"

                       if (id==0x68697661)

                       {

                              data_size = sizeof(MainAVIHeader);

                              if (0==fread (&MainAVIHeader, data_size, 1, fp))

                              {

                                      break;

                              }

                              memcpy (&ai->Header, &MainAVIHeader, data_size);

                             

                              seek_size = ( size!=data_size ) ?  size-data_size : 0;

                       }

 

                       // "strh"

                       if (id==0x68727473)

                       {

                              data_size = sizeof(AVIStreamHeader);

                              if (0==fread (&AVIStreamHeader, data_size, 1, fp))

                              {

                                      break;

                              }

 

                              printf ("          %c%c%c%c:%c%c%c%c\r\n",

                                      (AVIStreamHeader.fccType   >> 0)&0xff,

                                      (AVIStreamHeader.fccType   >> 8)&0xff,

                                      (AVIStreamHeader.fccType   >>16)&0xff,

                                      (AVIStreamHeader.fccType   >>24)&0xff,

                                      (AVIStreamHeader.fccHandler>> 0)&0xff,

                                      (AVIStreamHeader.fccHandler>> 8)&0xff,

                                      (AVIStreamHeader.fccHandler>>16)&0xff,

                                      (AVIStreamHeader.fccHandler>>24)&0xff);

 

                              strh = 0;

                              // "vids"

                              if (0x73646976==AVIStreamHeader.fccType)

                              {

                                      strh = 1;

                                      memcpy(&ai->Video, &AVIStreamHeader, data_size);

                                      ai->HasVideo = 1;

                              }

                              // "auds"

                              if (0x73647561==AVIStreamHeader.fccType)

                              {

                                      strh = 2;

                                      memcpy(&ai->Audio, &AVIStreamHeader, data_size);

                                      ai->HasAudio = 1;

                              }

 

                              seek_size = ( size!=data_size ) ?  size-data_size : 0;

                       }

 

                       // "strf"

                       if (id==0x66727473)

                       {

                              data_size = 0;

 

                              if (1==strh)

                              {

                                      data_size = sizeof(BitmapInfoHeader);

                                      if (0==fread (&BitmapInfoHeader, data_size, 1, fp))

                                      {

                                             break;

                                      }

                                      memcpy(&ai->VideoBitmapInfo, &BitmapInfoHeader, data_size);

                              }

                              if (2==strh)

                              {

                                      data_size = sizeof(WaveFormatEx);

                                      if (0==fread (&WaveFormatEx, data_size, 1, fp))

                                      {

                                             break;

                                      }

                                      memcpy(&ai->AudioWaveFormatEx, &WaveFormatEx, data_size);

                              }

 

                              seek_size = ( size!=data_size ) ?  size-data_size : 0;

                       }

 

                       // "00dc" : Compressed video frame

                       if ((id&0xffff0000)==0x63640000)

                       {

                              ai->video_data_size += size;

                              ai->video_data_count++;

                       }

                       // "00db" : Uncompressed video frame

                       if ((id&0xffff0000)==0x62640000)

                       {

                              ai->video_data_size += size;

                              ai->video_data_count++;

                       }

                       // "00pc" : Palette change

                       if ((id&0xffff0000)==0x63700000)

                       {

                              ai->video_data_size += size;

                              ai->video_data_count++;

                       }

                       // "00wb" : Audio data

                       if ((id&0xffff0000)==0x62770000)

                       {

                              ai->audio_data_size += size;

                              ai->audio_data_count++;

                       }

 

                       //

                       if ( 0!=seek_size )

                       {

                              if ( data_size != size )

                              {

                                      printf ("          # data_size(%d) != size(%d)\r\n", data_size, size);

                              }

                              if (0!=(seek_size%2))

                              {

                                      seek_size+=(seek_size%2);

                              }

                              if (-1==fseek (fp, seek_size, SEEK_CUR))

                              {

                                      break;

                              }

                       }

               }

        }

 

        fclose (fp);

 

        return true;

}

 

int _tmain(int argc, _TCHAR* argv[])

{

        avi_info_t avi;

 

        memset (&avi,0,sizeof(avi));

 

        if (true==read_avi_header ("d:\\test.avi", &avi))

        {

               printf ("\r\n");

               printf ("OK\r\n");

 

               double fps;

               double duration;

              

               double VideoFramesPerSec;

               double AudioBlockPerSec ;

 

               int HeaderSize;

               int VideoSize ;

               int AudioSize ;

 

               double VideoBitRate;

               double AudioBitRate;

               double FileBitRate;

 

               fps      = 1000000.0f/(double)avi.Header.MicroSecPerFrame;

               duration = avi.Header.TotalFrames / fps;

 

               AudioBlockPerSec  = (double)avi.Audio.Rate / (double)avi.Audio.Scale;

               VideoFramesPerSec = (double)avi.Video.Rate / (double)avi.Video.Scale;

              

               /*

               HeaderSize = avi.Header.TotalFrames * 8 * (avi.audio_data_count + 1);

               AudioSize  = (int)((avi.Audio.Length * avi.AudioWaveFormatEx.AvgBytesPerSec)/AudioBlockPerSec) * avi.audio_data_count;

               VideoSize  = avi.movi_size - HeaderSize - AudioSize;

               */

               HeaderSize = avi.movi_size - avi.video_data_size - avi.audio_data_size;

               AudioSize  = avi.audio_data_size;

               VideoSize  = avi.video_data_size;

 

               FileBitRate  = avi.avi_size * 8.0 / duration / 1000.0;

               AudioBitRate = avi.AudioWaveFormatEx.AvgBytesPerSec*8.0/1000.0;

               VideoBitRate = FileBitRate - AudioBitRate; // Windows AVI File Property

               VideoBitRate = (VideoSize * VideoFramesPerSec * 8.0)/(avi.Header.TotalFrames*1000.0);

 

               printf ("\r\n");

 

                if (avi.HasVideo)

               {

                       printf ("[비디오] \r\n");

                       printf ("길이          = %5.3f \r\n", duration);

                       printf ("프레임너비   = %d\r\n", avi.Header.Width);

                       printf ("프레임높이   = %d\r\n", avi.Header.Height);

                       printf ("데이터속도   = %5.3f kbps \r\n", VideoBitRate);                    

                       printf ("총비트전송률= %5.3f kbps\r\n", FileBitRate);

                       printf ("프레임속도   = %5.3f 프레임/\r\n", fps);

 

                       printf ("\r\n");

               }

 

               if (avi.HasAudio)

               {

                       printf ("[오디오] \r\n");

                       printf ("비트전송율      = %5.3f kbps \r\n", AudioBitRate);

                       printf ("채널            = %d \r\n", avi.AudioWaveFormatEx.Channels);

                       printf ("오디오샘플속도= %5.3f KHz\r\n", AudioBlockPerSec / 1000);

 

                       printf ("\r\n");

               }

        }

 

        return 0;

}

 

/*

 

RIFF 2317980 AVI

      12: <LIST> 8818

          hdrl

      24: <avih> 56

      88: <LIST> 4244

          strl

     100: <strh> 56

          vids:

     164: <strf> 40

     212: <JUNK> 4120

    4340: <LIST> 4222

          strl

    4352: <strh> 56

          auds:

    4416: <strf> 18

          # data_size(20) != size(18)

    4442: <JUNK> 4120

    8570: <LIST> 260

          odml

    8582: <dmlh> 248

    8838: <LIST> 28

          INFO

    8850: <ISFT> 15

    8874: <JUNK> 1358

   10240: <LIST> 2281204

          movi

   10252: <01wb> 24000

   34260: <00dc> 22306

   56574: <01wb> 1920

   58502: <00dc> 159

   58670: <01wb> 1920

...

 2290948: <00dc> 159

 2291116: <00dc> 159

 2291284: <00dc> 159

 2291452: <idx1> 26528

 2317988: <JUNK> 340

 2318336:

OK

 

[비디오]

길이          = 33.400

프레임너비   = 640

프레임높이   = 480

데이터속도   = 159.297 kbps

총비트전송률= 555.205 kbps

프레임속도   = 25.000 프레임/

 

[오디오]

비트전송율      = 384.000 kbps

채널            = 5

오디오샘플속도= 48.000 KHz

 

*/

Posted by 셈말짓기 :

# link 기본
#     g++ -o hellox -Wall -D_REENTRANT         \
#         /usr/lib/i386-linux-gnu/libpthread.a \
#         /usr/X11R6/lib/libX11.so             \
#         ./libprint.so                        \
#         ./hellox.o                          
# g++
#     -l라이브러리파일명중lib제외한부분[libXXXX.a]
#         [예] -lpthread -> libpthread.a
#     -L라이브러리파일libXXXX.a찾을경로
#         [예] $(CXX) -o hellox -Wall -D_REENTRANT -lpthread /usr/X11R6/lib/libX11.so hellox.o
#              $(CXX) -o hellox -Wall -D_REENTRANT -lpthread -lX11 hellox.o -L/usr/X11R6/lib
#     -Wl,ld명령파라메터
#         ld명령에 파라메터 전송 구분자, 구분자,는 공백문자로 변경됨
#         -Wl,이후 공백문자를 사용하지말것

LIB_PTHREAD     = /usr/lib/i386-linux-gnu/libpthread.a

INC_X11_DESKTOP = /usr/X11R6/include
LIB_X11_DESKTOP = /usr/X11R6/lib/libX11.so
LIB_X11_DEUTA   = /opt/mft1-gcc/target/extended/xlib6g/usr/X11R6/lib/libX11.so.6

ifeq '$(MAKECMDGOALS)' ''
prepared_error:
 @echo "No target!"
endif

ifeq '$(MAKECMDGOALS)' 'all'
INC_X11 = $(INC_X11_DESKTOP)
LIB_X11 = $(LIB_X11_DESKTOP)
endif

compile:
 @echo ""
 @echo "============================================================================="
 @echo "compile"
 @echo "============================================================================="
 $(CXX) -o hellox.o    -ansi -pedantic -Wall -I$(INC_X11) -c  hellox.c
 $(CXX) -o libprint.so -ansi -pedantic -Wall -fPIC -shared    libprint.c -Wl,-Map,libprint.map

link:
 @echo ""
 @echo "============================================================================="
 @echo "link"
 @echo "============================================================================="
 $(CXX) -o hellox      -Wall -D_REENTRANT $(LIB_PTHREAD) $(LIB_X11) libprint.so hellox.o -Wl,--rpath,.,-Map,hellox.map

clean:
 @echo ""
 @echo "============================================================================="
 @echo "clean"
 @echo "============================================================================="
 rm -f *.o
 rm -f *.so
 rm -f *.map
 rm -f hellox
 
all: clean compile link

execute:
 @echo ""
 @echo "============================================================================="
 @echo "execute"
 @echo "============================================================================="
 ./hellox

show_make:
 @echo ""
 @echo "============================================================================="
 @echo "show make variables"
 @echo "============================================================================="
 @echo "MAKEFILES    = $(MAKEFILES)"
 @echo "VPATH        = $(VPATH)"
 @echo "SHELL        = $(SHELL)"
 @echo "MAKESHELL    = $(MAKESHELL)"
 @echo "MAKE         = $(MAKE)"
 @echo "MAKELEVEL    = $(MAKELEVEL)"
 @echo "MAKEFLAGS    = $(MAKEFLAGS)"
 @echo "MAKECMDGOALS = $(MAKECMDGOALS)"
 @echo "CURDIR       = $(CURDIR)"
 @echo "SUFFIXES     = $(SUFFIXES)"

show_rpath:
 @echo ""
 @echo "============================================================================="
 @echo "show rpath"
 @echo "============================================================================="
 objdump -x hellox |grep RPATH
# readelf -d hellox |head -20

Posted by 셈말짓기 :

# SVN 사용시 아래 파일은 무시하도록 설정한다.

1. 위치
[TortoiseSVN 설정 / 일반 / Subversion / 제외/무시 패턴(&P)]

2. 기본값
*.o *.lo *.la *.al .libs *.so *.so.[0-9]* *.a *.pyc *.pyo *.rej *~ #*# .#* .*.swp .DS_Store

3. 추가 내용
Thumbs.db *.map *.exe *.res mt.dep BuildLog.htm *.ilk *.exe.embed.manifest *.exe.intermediate.manifest *.obj *.pch *.pdb *.idb *.user *.aps *.ncb *.suo

4. 추가 후 내용
Thumbs.db *.map *.exe *.res mt.dep BuildLog.htm *.ilk *.exe.embed.manifest *.exe.intermediate.manifest *.obj *.pch *.pdb *.idb *.user *.aps *.ncb *.suo *.o *.lo *.la *.al .libs *.so *.so.[0-9]* *.a *.pyc *.pyo *.rej *~ #*# .#* .*.swp .DS_Store


# SVN 과 연결을 해제 하면서 .svn하위 파일을 삭제 하는 쉘 스크립트
[Delete SVN Folders.reg]
----------------------------------------------------------------------------------------------------
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\DeleteSVN]
@="Delete SVN Folders"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\DeleteSVN\command]
@="cmd.exe /c \"TITLE Removing SVN Folders in %1 && COLOR 9A && FOR /r \"%1\" %%f IN (.svn) DO RD /s /q \"%%f\" \""
----------------------------------------------------------------------------------------------------

Posted by 셈말짓기 :

transformXGR

2009. 9. 3. 17:09 from 셈말짓기/헤아림


graphedt.exe를 이용하여 XML Format인 XGR로 저장하면 자동으로 C++ Code변환해주는 XSL입니다.
안에 Batch File을 사용하시면 자동으로 C++ File이 생성됩니다.

예:
c:\transformXGR.bat a.xgr


원본 XSL출처는 아래 URL입니다.
http://groups.google.com/group/microsoft.public.win32.programmer.directx.video/browse_thread/thread/29ccdbf293ef8eb8/937a6e037a20de30
안에 내용을 조금 수정했습니다.

Posted by 셈말짓기 :

요즘 다 Win32 API와 MSVC C Runtime Library만 불러다쓰니 어느게 표준 함수인지 모르겠다.
그래서, 표준함수를 찾아 보았다.

표준 함수 목록

------------------------------------------------------------------------------------
C89
------------------------------------------------------------------------------------
assert.h
assert()

ctype.h
isalnum() isalpha() iscntrl() isdigit() isgraph() 
islower() isprint() ispunct() isspace() isupper() 
isxdigit() tolower() toupper()

locale.h
localeconv() setlocale()

math.h
acos() asin() atan() atan2() ceil() 
cos() cosh() exp() fabs() floor() 
fmod() frexp() ldexp() log() log10() 
modf() pow() sin() sinh() sqrt() 
tan()

setjmp.h
longjmp() setjmp()

signal.h
raise() signal()

stdarg.h
va_arg() va_end() va_start()

stddef.h
offsetof()

stdio.h
clearerr() fclose() feof() ferror() fflush() 
fgetc() fgetpos() fgets() fopen() fprintf() 
fputc() fputs() fread() freopen() fscanf() 
fseek() fsetpos() fwrite() getc() getchar() 
gets() main() perror() printf() putc() 
putchar() puts() remove() rename() rewind() 
scanf() setbuf() setvbuf() sprintf() sscanf()
tmpfile() tmpnam() ungetc() vfprintf() vprintf() 
vsprintf()

stdlib.h
abort() abs() atexit() atof() atoi() 
atol() bsearch() calloc() div() exit() 
free() ftell() getenv() labs() ldiv() 
malloc() mblen() mbstowcs() mbtowc() qsort() 
rand() realloc() sizeof() srand() strtod() 
strtol() strtoul() system() wctomb() wcstombs()

string.h
memchr() memcmp() memcpy() memmove() memset() 
strcat() strchr() strcmp() strcoll() strcpy() 
strcspn() strerror() strlen() strncat() strncmp() 
strncpy() strpbrk() strrchr() strspn() strstr() 
strtok() strxfrm()

time.h
asctime() clock() ctime() difftime() gmtime() 
localtime() mktime() strftime() 


------------------------------------------------------------------------------------
C99
------------------------------------------------------------------------------------
complex.h
cabs() cabsf() cabsl() cacos() cacosf() 
cacosl() cacosh() cacoshf() cacoshl() carg() 
cargf() cargl() casin() casinf() casinl() 
casinh() casinhf() casinhl() catan() catanf() 
catanl() catanh() catanhf() catanhl() conj() 
conjf() conjl() ccos() ccosf() ccosl() 
ccosh() ccoshf() ccoshl() cproj() cprojf() 
cprojl() cexp() cexpf() cexpl() cimag()
cimagf() cimagl() clog() clogf() clogl()
cpow() cpowf() cpowl() creal() crealf()
creall() csin() csinf() csinl() csinh()
csinhf() csinhl() csqrt() csqrtf() csqrtl()
ctan() ctanf() ctanl() ctanh() ctanhf()
ctanhl()
 
ctype.h
isblank()

fenv.h
feclearexcept() feholdexcept() fegetenv() fegetexceptflag() fegetround()
feraiseexcept() fesetenv() fesetexceptflag() fesetround() fetestexcept()
feupdateenv()

inttypes.h
imaxabs() imaxdiv() strtoimax() strtoumax()  wcstoimax() 
wcstoumax()

math.h
acosf() acosl() acosh() acoshf() acoshl()
asinf() asinl() asinh() asinhf() asinhl()
atanf() atanl() atanh() atanhf() atanhl()
atan2f() atan2l() cbrt() cbrtf() cbrtl()
ceilf() ceill() cosf() cosl() coshf()
coshl() copysign() copysignf() copysignl() erf() 
erff() erfl() erfc() erfcf() erfcl() 
expf() expl() exp2() exp2f() exp2l()
expm1() expm1f() expm1l() fabsf() fabsl()
floorf() floorl() fdim() fdimf() fdiml()
fma() fmaf() fmal() fmax() fmaxf()
fmaxl() fmin() fminf() fminl() fmodf()
fmodl() frexpf() frexpl() hypot() hypotf()
hypotl() ilogb() ilogbf() ilogbl() ldexpf()
ldexpl() lgamma() lgammaf() lgammal() llrint()
llrintf() llrintl() llround() llroundf() llroundl()
logf() logl() logb() logbf() logbl()
log10f() log10l() logp1() logp1f() logp1l()
log2() log2f() log2l() lrint() lrintf()
lrintl() lround() lroundf() lroundl() modff()
modfl() nan() nanf() nanl() nearbyint() 
nearbyintf() nearbyintl() nextafter() nextafterf() nextafterl()
nexttoward() nexttowardf() nexttowardl() powf() powl()
remainder() remainderf() remainderl() remquo() remquof() 
remquol() rint() rintf() rintl() round() 
roundf() roundl() scalbln() scalblnf() scalblnl()
scalbn() scalbnf() scalbnl() sinf() sinl()
sinhf() sinhl() sqrtf() sqrtl() tanf()
tanl() tanhf() tanhl() tgamma() tgammaf()
tgammal() trunc() truncf() truncl()

stdarg.h
va_copy()

stdio.h
fgetpos() fgets() fopen() fprintf() fputs() 
fread() freopen() fscanf() fwrite() printf()
scanf() setbuf() setvbuf() snprintf() sprintf() 
sscanf() vfprintf() vfscanf() vprintf() vscanf()
vsnprintf() vsprintf() vsscanf()

stdlib.h
atoll() _Exit() llabs() lldiv() mbstowcs() 
mbtowc() strtod() strtof() strtol() strtold() 
strtoll() strtoul() strtoull() wcstombs()

string.h
memcpy() strcat() strcpy() strncat() strncpy() 
strtok() strxfrm()

time.h
mkxtime() strftime() strfxtime() zonetime()

wchar.h
btowc() fgetwc() fgetws() fputwc()fputws() 
fwide() fwprintf() fwscanf() getwc() getwchar()
mbrlen() mbrtowc() mbsinit() mbsrtowcs() putwc() 
putwchar() swprintf() swscanf() ungetwc() vfwprintf() 
vfwscanf() vswprintf() vswscanf() vwprintf() vwscanf() 
wcrtomb() wcsftime() wcsrtombs() wcstod() wcstof() 
wcstol() wcstold() wcstoll() wcstoul() wcstoull() 
wcscat() wcschr() wcscmp() wcscoll() wcscpy() 
wcscspn() wcslen() wcsncat() wcsncmp() wcsncpy() 
wcspbrk() wcsrchr() wcsspn() wcsstr() wcstok()
wcsxfrm() wctob() wmemchr() wmemcmp() wmemcpy() 
wmemmove() wmemset() wprintf() wscanf()

wctype.h
iswalnum() iswalpha() iswblank() iswcntrl() iswctype()
iswdigit() iswgraph() iswlower() iswprint() iswpunct() 
iswspace() iswupper() iswxdigit() towctrans() towlower()
towupper() wctrans() wctype()


참고자료:
http://www.utas.edu.au/infosys/info/documentation/C/CStdLib.html
http://www.esnips.com/doc/46e78cce-ef6e-47c4-b828-82fa1f88ea81/A-Dictionary-of-ANSI-Standard-C-Function-Definitions

 
Posted by 셈말짓기 :

ASCII Table

2009. 1. 6. 17:52 from 셈말짓기/헤아림

ASCII - 1

10진수

16진수

ASCII

10진수

16진수

ASCII

10진수

16진수

ASCII

10진수

16진수

ASCII

0

0x00

NULL

32

0x20

SP

64

0x40

@

96

0x60

.

1

0x01

SOH

33

0x21

!

65

0x41

A

97

0x61

a

2

0x02

STX

34

0x22

"

66

0x42

B

98

0x62

b

3

0x03

ETX

35

0x23

#

67

0x43

C

99

0x63

c

4

0x04

EOT

36

0x24

$

68

0x44

D

100

0x64

d

5

0x05

ENQ

37

0x25

%

69

0x45

E

101

0x65

e

6

0x06

ACK

38

0x26

&

70

0x46

F

102

0x66

f

7

0x07

BEL

39

0x27

'

71

0x47

G

103

0x67

g

8

0x08

BS

40

0x28

(

72

0x48

H

104

0x68

h

9

0x09

HT

41

0x29

)

73

0x49

I

105

0x69

i

10

0x0A

LF

42

0x2A

*

74

0x4A

J

106

0x6A

j

11

0x0B

VT

43

0x2B

+

75

0x4B

K

107

0x6B

k

12

0x0C

FF

44

0x2C

'

76

0x4C

L

108

0x6C

l

13

0x0D

CR

45

0x2D

-

77

0x4D

M

109

0x6D

m

14

0x0E

SO

46

0x2E

.

78

0x4E

N

110

0x6E

n

15

0x0F

SI

47

0x2F

/

79

0x4F

O

111

0x6F

o

16

0x10

DLE

48

0x30

0

80

0x50

P

112

0x70

p

17

0x11

DC1

49

0x31

1

81

0x51

Q

113

0x71

q

18

0x12

SC2

50

0x32

2

82

0x52

R

114

0x72

r

19

0x13

SC3

51

0x33

3

83

0x53

S

115

0x73

s

20

0x14

SC4

52

0x34

4

84

0x54

T

116

0x74

t

21

0x15

NAK

53

0x35

5

85

0x55

U

117

0x75

u

22

0x16

SYN

54

0x36

6

86

0x56

V

118

0x76

v

23

0x17

ETB

55

0x37

7

87

0x57

W

119

0x77

w

24

0x18

CAN

56

0x38

8

88

0x58

X

120

0x78

x

25

0x19

EM

57

0x39

9

89

0x59

Y

121

0x79

y

26

0x1A

SUB

58

0x3A

:

90

0x5A

Z

122

0x7A

z

27

0x1B

ESC

59

0x3B

;

91

0x5B

[

123

0x7B

{

28

0x1C

FS

60

0x3C

< 

92

0x5C

\

124

0x7C

|

29

0x1D

GS

61

0x3D

=

93

0x5D

]

125

0x7D

}

30

0x1E

RS

62

0x3E

> 

94

0x5E

^

126

0x7E

~

31

0x1F

US

63

0x3F

?

95

0x5F

_

127

0x7F

DEL

 

ASCII - 2

 10진수

16진수

ASCII

10진수

16진수

ASCII

 10진수

16진수

ASCII

10진수

16진수

ASCII

128

0x80

?

160

0xA0

192

0xC0

À

224

0xE0

à

129

0x81

?

161

0xA1

¡

193

0xC1

Á

225

0xE1

á

130

0x82

?

162

0xA2

194

0xC2

Â

226

0xE2

â

131

0x83

?

163

0xA3

195

0xC3

Ã

227

0xE3

ã

132

0x84

?

164

0xA4

¤

196

0xC4

Ä

228

0xE4

ä

133

0x85

165

0xA5

197

0xC5

Å

229

0xE5

å

134

0x86

166

0xA6

¦

198

0xC6

Æ

230

0xE6

æ

135

0x87

167

0xA7

§

199

0xC7

Ç

231

0xE7

ç

136

0x88

?

168

0xA8

¨

200

0xC8

È

232

0xE8

è

137

0x89

169

0xA9

201

0xC9

É

233

0xE9

é

138

0x8A

?

170

0xAA

ª

202

0xCA

Ê

234

0xEA

ê

139

0x8B

?

171

0xAB

203

0xCB

Ë

235

0xEB

ë

140

0x8C

Œ

172

0xAC

204

0xCC

Ì

236

0xEC

ì

141

0x8D

?

173

0xAD

­

205

0xCD

Í

237

0xED

í

142

0x8E

?

174

0xAE

®

206

0xCE

Î

238

0xEE

î

143

0x8F

?

175

0xAF

¯

207

0xCF

Ï

239

0xEF

ï

144

0x90

?

176

0xB0

°

208

0xD0

Ð

240

0xF0

ð

145

0x91

177

0xB1

±

209

0xD1

Ñ

241

0xF1

ñ

146

0x92

178

0xB2

²

210

0xD2

Ò

242

0xF2

ò

147

0x93

179

0xB3

³

211

0xD3

Ó

243

0xF3

ó

148

0x94

180

0xB4

´

212

0xD4

Ô

244

0xF4

ô

149

0x95

?

181

0xB5

μ

213

0xD5

Õ

245

0xF5

õ

150

0x96

?

182

0xB6

214

0xD6

Ö

246

0xF6

ö

151

0x97

?

183

0xB7

·

215

0xD7

×

247

0xF7

÷

152

0x98

?

184

0xB8

¸

216

0xD8

Ø

248

0xF8

ø

153

0x99

185

0xB9

¹

217

0xD9

Ù

249

0xF9

ù

154

0x9A

?

186

0xBA

º

218

0xDA

Ú

250

0xFA

ú

155

0x9B

?

187

0xBB

219

0xDB

Û

251

0xFB

û

156

0x9C

œ

188

0xBC

¼

220

0xDC

Ü

252

0xFC

ü

157

0x9D

?

189

0xBD

½

221

0xDD

Ý

253

0xFD

ý

158

0x9E

?

190

0xBE

¾

222

0xDE

Þ

254

0xFE

þ

159

0x9F

?

191

0xBF

¿

223

0xDF

ß

255

0xFF

ÿ

 

 

SOH - start of heading

 STX - start of text

 ETX - end of text

 EOT - end of transmission

 ENQ - enquiry

 ACK - acknowledge

 BEL - bell

 BS  - backspac

HT  - horizontal tab

 LF  - NL line feed, new line

 VT  - vertical tab

FF  - NP form feed, new page

 CR  - carriage return

 SO  - shift out

 SI  - shift in

 DLE - data link escape

 DC1 - device control 1

 DC2 - device control 2

 DC3 - device control 3

 DC4 - device control 4

NAK - negative acknowledge

 SYN - synchronous idle

 ETB - end of trans. block

 CAN - cancel

 EM  - end of medium

 SUB - substitute

 ESC - escape

 FS  - file separator

 GS  - group separator

 RS  - record separator

 US  - unit separator

 

Posted by 셈말짓기 :
Posted by 셈말짓기 :



위의 레지스트리 파일을 추가하면된다.

내용은 아래와 같다.

-------------------------------------------------------------------------

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\8.0\Text Editor]
"Guides"="RGB(204,204,204) 77"

-------------------------------------------------------------------------

77컬럼이외에 더 추가하려면 아래와 같이 추가하면된다.
"Guides"="RGB(204,204,204) 4 77 79"

원본:
http://minjang.egloos.com/2055072

Posted by 셈말짓기 :

비디오 포맷

2008. 9. 22. 12:20 from 셈말짓기/헤아림

# 아날로그 비디오 포맷
1. Composite : NTSC, PAL
2. S-Video(Y+C)
3. 아날로그 RGB: D-Sub 모니터
4. YPbPr

# 디지털 비디오 포맷
1. CCIR 656 (H/V Sync포함)
2. CCIR 601
2. YCrCb
3. YUV
4. RGB
Posted by 셈말짓기 :

# Boost Library 목록

1. Debug
\boost_1_35_0\bin.v2\libs\date_time\build\msvc-8.0\debug\link-static\threading-multi\libboost_date_time-vc80-mt-gd-1_35.lib
\boost_1_35_0\bin.v2\libs\filesystem\build\msvc-8.0\debug\link-static\threading-multi\libboost_filesystem-vc80-mt-gd-1_35.lib
\boost_1_35_0\bin.v2\libs\graph\build\msvc-8.0\debug\link-static\threading-multi\libboost_graph-vc80-mt-gd-1_35.lib
\boost_1_35_0\bin.v2\libs\iostreams\build\msvc-8.0\debug\link-static\threading-multi\libboost_iostreams-vc80-mt-gd-1_35.lib
\boost_1_35_0\bin.v2\libs\program_options\build\msvc-8.0\debug\link-static\threading-multi\libboost_program_options-vc80-mt-gd-1_35.lib
\boost_1_35_0\bin.v2\libs\regex\build\msvc-8.0\debug\link-static\threading-multi\libboost_regex-vc80-mt-gd-1_35.lib
\boost_1_35_0\bin.v2\libs\serialization\build\msvc-8.0\debug\link-static\threading-multi\libboost_serialization-vc80-mt-gd-1_35.lib
\boost_1_35_0\bin.v2\libs\serialization\build\msvc-8.0\debug\link-static\threading-multi\libboost_wserialization-vc80-mt-gd-1_35.lib
\boost_1_35_0\bin.v2\libs\signals\build\msvc-8.0\debug\link-static\threading-multi\libboost_signals-vc80-mt-gd-1_35.lib
\boost_1_35_0\bin.v2\libs\system\build\msvc-8.0\debug\link-static\threading-multi\libboost_system-vc80-mt-gd-1_35.lib
\boost_1_35_0\bin.v2\libs\test\build\msvc-8.0\debug\asynch-exceptions-on\link-static\threading-multi\libboost_prg_exec_monitor-vc80-mt-gd-1_35.lib
\boost_1_35_0\bin.v2\libs\test\build\msvc-8.0\debug\asynch-exceptions-on\link-static\threading-multi\libboost_test_exec_monitor-vc80-mt-gd-1_35.lib
\boost_1_35_0\bin.v2\libs\test\build\msvc-8.0\debug\asynch-exceptions-on\link-static\threading-multi\libboost_unit_test_framework-vc80-mt-gd-1_35.lib
\boost_1_35_0\bin.v2\libs\thread\build\msvc-8.0\debug\link-static\threading-multi\libboost_thread-vc80-mt-gd-1_35.lib
\boost_1_35_0\bin.v2\libs\wave\build\msvc-8.0\debug\link-static\threading-multi\libboost_wave-vc80-mt-gd-1_35.lib

2. Release
\boost_1_35_0\bin.v2\libs\date_time\build\msvc-8.0\release\link-static\threading-multi\libboost_date_time-vc80-mt-1_35.lib
\boost_1_35_0\bin.v2\libs\filesystem\build\msvc-8.0\release\link-static\threading-multi\libboost_filesystem-vc80-mt-1_35.lib
\boost_1_35_0\bin.v2\libs\graph\build\msvc-8.0\release\link-static\threading-multi\libboost_graph-vc80-mt-1_35.lib
\boost_1_35_0\bin.v2\libs\iostreams\build\msvc-8.0\release\link-static\threading-multi\libboost_iostreams-vc80-mt-1_35.lib
\boost_1_35_0\bin.v2\libs\program_options\build\msvc-8.0\release\link-static\threading-multi\libboost_program_options-vc80-mt-1_35.lib
\boost_1_35_0\bin.v2\libs\regex\build\msvc-8.0\release\link-static\threading-multi\libboost_regex-vc80-mt-1_35.lib
\boost_1_35_0\bin.v2\libs\serialization\build\msvc-8.0\release\link-static\threading-multi\libboost_serialization-vc80-mt-1_35.lib
\boost_1_35_0\bin.v2\libs\serialization\build\msvc-8.0\release\link-static\threading-multi\libboost_wserialization-vc80-mt-1_35.lib
\boost_1_35_0\bin.v2\libs\signals\build\msvc-8.0\release\link-static\threading-multi\libboost_signals-vc80-mt-1_35.lib
\boost_1_35_0\bin.v2\libs\system\build\msvc-8.0\release\link-static\threading-multi\libboost_system-vc80-mt-1_35.lib
\boost_1_35_0\bin.v2\libs\test\build\msvc-8.0\release\asynch-exceptions-on\link-static\threading-multi\libboost_prg_exec_monitor-vc80-mt-1_35.lib
\boost_1_35_0\bin.v2\libs\test\build\msvc-8.0\release\asynch-exceptions-on\link-static\threading-multi\libboost_test_exec_monitor-vc80-mt-1_35.lib
\boost_1_35_0\bin.v2\libs\test\build\msvc-8.0\release\asynch-exceptions-on\link-static\threading-multi\libboost_unit_test_framework-vc80-mt-1_35.lib
\boost_1_35_0\bin.v2\libs\thread\build\msvc-8.0\release\link-static\threading-multi\libboost_thread-vc80-mt-1_35.lib
\boost_1_35_0\bin.v2\libs\wave\build\msvc-8.0\release\link-static\threading-multi\libboost_wave-vc80-mt-1_35.lib

Posted by 셈말짓기 :