레이블이 c인 게시물을 표시합니다. 모든 게시물 표시
레이블이 c인 게시물을 표시합니다. 모든 게시물 표시

2010년 4월 1일 목요일

파일삭제 _unlink를 쓰면서 일어난 문제

_unlink 함수를 이용하여 파일 하나를 삭제하고 싶은데...

"Access is denied"가 자꾸 뜬다...

처음엔.. 내가 삭제하려 하는 파일을 close하지 않아서 그런가 싶어서...

파일을 다시 한번 오픈했다가 fclose(tempfp) 함수까지 삽입하였는데도 여전하다.

 

근데..

프로그램을 종료했다 다시 실행시키고..

_unlink 함수만 딸랑 실행하면 잘만 지워댄다.

 

왜 내가 원하는 방식으론 접근을 못하는걸까??????

 

 if((tempfp=fopen(cTempFilePath, "w"))!=NULL)
  {
   tempfileFlag = 1;
  }
  if(tempfileFlag)
  {
   fclose(tempfp);
   if (_unlink(cTempFilePath))
   {
    switch (errno)
    {
    case EACCES: AfxMessageBox("Access is denied"); break;
    case ENOENT: AfxMessageBox("Could not find"); break;
    default:  AfxMessageBox("Unknown error."); break;
    }
   }
   else
   {
    AfxMessageBox("Deleted");
   }
  }
 

2010년 3월 19일 금요일

0x10을 10으로 만들려면?

0x10을 10으로 만들려면 어떻게 해야할까?

미치겠네

알고나면 허무할것같은데 -_-;

 

지금은 모르겠어...

2009년 10월 14일 수요일

BMP 파일 헤더 포멧

BMP (Windows) Header Format

offset

size

description

0

2

signature, must be 4D42 hex

2

4

size of BMP file in bytes (unreliable)

6

2

reserved, must be zero

8

2

reserved, must be zero

10

4

offset to start of image data in bytes

14

4

size of BITMAPINFOHEADER structure, must be 40

18

4

image width in pixels

22

4

image height in pixels

26

2

number of planes in the image, must be 1

28

2

number of bits per pixel (1, 4, 8, or 24)

30

4

compression type (0=none, 1=RLE-8, 2=RLE-4)

34

4

size of image data in bytes (including padding)

38

4

horizontal resolution in pixels per meter (unreliable)

42

4

vertical resolution in pixels per meter (unreliable)

46

4

number of colors in image, or zero

50

4

number of important colors, or zero

 





BMP (OS/2) Header Format

offset

size

description

0

2

signature, must be 4D42 hex

2

4

size of BMP file in bytes (unreliable)

6

2

reserved, must be zero

8

2

reserved, must be zero

10

4

offset to start of image data in bytes

14

4

size of BITMAPCOREHEADER structure, must be 12

18

2

image width in pixels

20

2

image height in pixels

22

2

number of planes in the image, must be 1

24

2

number of bits per pixel (1, 4, 8, or 24)

 

 

 

2009년 10월 9일 금요일

if / else / endif

스택을 하위 메모리에서 상위 메모리 순서로 쓰는 경우 (OS_STK_GROWTH == 0)                      
OS_STK TaskStack[TASK_STACK_SIZE];                                                            
OSTaskCreate(task, pdata, &TaskStack[0], prio);                                               
                                                                                              
스택을 상위 메모리에서 하위 메모리 순서로 쓰는 경우 (OS_STK_GROWTH == 1)                      
OS_STK TaskStack[TASK_STACK_SIZE];                                                            
OSTaskCreate(task, pdata, &TaskStack[TASK_STACK_SIZE-1], prio);                               
                                                                                              
이렇게 쓰면 된다.                                                                             
                                                                                              
                                                                                              
하지만 이런 경우 그때 그때 마다 바꿔서 코딩해줘야 함으로 코드의 이식성이 좋다고 말할 수는 없다.
                                                                                              
이런 경우 if / else / endif 문을 쓰면 한결 좋아진다.                                          
                                                                                              
                                                                                              
OS_STK TaskStack[TASK_STACK_SIZE];                                                            
                                                                                              
#if OS_STK_GROWTH == 0                                                                        
 OSTaskCreate(task, pdata, &TaskStack[0], prio);            
#else                                                    
 OSTaskCreate(task, pdata, &TaskStack[TASK_STACK_SIZE-1], prio);

#endif                                                        
                                                                                               
                                                                                               
                                                                                              
이런식으로.                                      

BMP 파일 구조

비트맵 파일 헤더 (Bitmap File Header)

비트맵 인포헤더 (Bitmap Info Header)

팔레트 (Pallette)

이미지 데이터

 

typedef struct tagBITMAPFILEHEADER {

WORD bfType;        // BM 이라고 써있으면 bmp

DWORD bfSize;        // 이미지 크기

WORD bfReserved1;

WORD bfReserved2;

DWORD bfOffBits;    // 이미지 데이터가 있는 곳의 포인터

} BITMAPFILEHEADER

 

typedef struct tagBITMAPINFOHEADER{

DWORD biSize;        // 현 구조체의 크기

LONG biWidth;        // 이미지의 가로 크기

LONG biHeight;        // 이미지의 세로 크기

WORD biplanes;        // 플레인수

WORD biBitCount;    // 비트 수

DWORD biCompression;    // 압축 유무

DWORD biSizeImage;    // 이미지 크기

LONG biXPelsPerMeter;    // 미터당 가로 픽셀

LONG biYPelsPerMeter;    // 미터당 세로 픽셀

DWORD biClrUsed;    // 컬러 사용 유무

DWORD biClrImportant;    // 중요하게 사용하는 색

} BITMAPINFOHEADER;