'MFC'에 해당되는 글 18건

  1. 2011.03.11 아스키 코드 표
  2. 2010.03.26 ReadFile() 함수
  3. 2010.03.24 CloseHandle() 함수
  4. 2010.03.24 WriteFile() 함수
  5. 2010.03.23 memcpy()함수 2
  6. 2010.03.22 GetFileSize() 함수 1
C++2011. 3. 11. 14:32
#. 기본 아스키 코드 표

#. 확장 아스키 코드 표


출처 : 네이년 이미지
Posted by 쿵캉켕
C++2010. 3. 26. 10:12

#. 내용.
 - 파일로 부터 데이터를 읽어옵니다. 주로 동기적인 입력에 사용하기 때문에 데이터를 완전히 읽기 전에는 리턴하지 않으며, 비동기 입력에 사용할 경우는 즉시 리턴합니다. 현재 파일 포인터 위치에서부터 데이터를 읽으며 다 읽은 후 실제 읽은 바이트 수만큼 파일 포인터를 이동시켜 줍니다. 단, 비동기 입출력중일 때는 응용 프로그램이 파일 포인터를 직접 이동시켜 주어야 합니다.

#. 원형.
BOOL ReadFile(
   HANDLE hFile,
   LPVOID lpBuffer,
   DWORD nNumberOfBytesToRead,
   LPDWORD lpNumberOfBytesRead,
   LPOVERLAPPED lpOverlapped
);

#. 파라미터.
 - HANDLE hFile: 읽고자 하는 파일의 핸들. 이 파일은 GENERIC_READ 액세스 권한으로 열어야 합니다.
 - LPVOID lpBuffer: 읽어 올 데이터를 저장할 버퍼의 포인터 입니다.
 - DWORD nNumberOfBytesToRead: 실제 읽어오는 바이트 수를 지정합니다.
 - LPDWORD lpNumberOfBytesRead: 실제로 읽어온 바이트 수를 리턴하기 위한 출력용 인수입니다. ReadFile함수는 호출되는 즉시 이 값을 0으로 만듭니다. 비동기 입출력을 하지 않을 경우 이 인수는 null을 줄 수 없으며, 반드시 DWORD형 변수에 대한 포인터를 제공해야 합니다.
   LPOVERLAPPED lpOverlapped: 비동기 입출력을 위한 OVERLAPPED 구조체의 포인터입니다. 파일을 FILE_FLAG_OVERLAPPED 플래그로 열었으면 이 구조체를 반드시 제공해야 하며 비동기 입출력을 사용하지 않을 경우 NULL을 주면 됩니다.

#. 리턴 값.
 - 성공하면 0이 아닌 값을 리턴합니다.
 - 리턴값이 0이 아닌데 실제 읽은 바이트가 0이라면 파일 포인터가 끝부분(EOF)인 것입니다.
 - 실패하면 0을 리턴 합니다.
Posted by 쿵캉켕
C++2010. 3. 24. 17:10
#. 내용.
 - 열려진 핸들을 닫습니다.  Win32 환경에서 핸들로 표현되는 대부분의 커널 오브젝트(파일, 파일 맵핑, 콘솔 입력, 콘솔 버퍼, 소켓, 프로세스, 스레드, 뮤텍스, 이벤트, 세마포어)들을 닫습니다.
 - 아이콘, 윈도우, 펜, 브러시 등의 유저 오브젝트, GDI 오브젝트는 이 함수로 닫을 수 없습니다.

#. 원형.
BOOL CloseHandle(HANDLE hObject);

#. 파라메터
 - HANDLE hObject: 닫고자 하는 핸들을 나타냅니다.
Posted by 쿵캉켕
C++2010. 3. 24. 16:47
#. 내용.
 - 파일에 데이터를 기록합니다. 파일 포인터가 가리키고 있는 지점에 데이터를 기록하며 기록을 완료한 후 실제 기록한 바이트 수 만큼 파일 포인터를 이동시켜 줍니다.
 - 파일뿐만 아니라 파이프, 소켓, 통신 포트, 콘솔 등의 장치로도 데이터를 출력할 수 있습니다.

#. 원형.
BOOL WriteFile (
  HANDLE hFile,
  LPCVOID lpBuffer,
  DWORD nNumberOfBytesToWrite,
  LPDWORD lpNumberOfBytesWritten,
  OVERLAPPED lpOverlapped
);

#. 파라미터.
 - HANDLE hFile: 기록하고자 하는 파일의 핸들입니다. 이 파일은 GENERIC_WRITE 엑세스 권한으로 열어야 합니다.
 - LPCVOID lpBuffer: 출력할 데이터를 가지고 있는 버퍼입니다. 즉, 파일에 복사할 내용을 가지고 있는 버퍼입니다.
 - DWORD nNumberOfBytesToWrite: 기록할 수 있는 바이트 수를 지정합니다.
 - LPDWORD lpNumberOfBytesWritten: 실제로 기록한 바이트 수를 리턴받기 위한 출력용 파라미터 입니다. writeFile호출시 이 값은 바로 0으로 변경됩니다. 비동기식 입출력을 하지 않을 경우 이 인수는 null로 줄 수 없으며, 반드시 DWORD형 변수에 대한 포인터를 제공해야 합니다.
 - OVERLAPPED lpOverlapped: 비동기식 입출력을 위한 OVERLAPPED 구조체의 포인터 입니다. 파일을 FILE_FLAG_OVERLAPPED 플래그로 열었으면 이 구조체를 반드시 제공해야 하며, 비동기 입출력을 사용하지 않을 경우 NULL을 주면 됩니다.

출처: http://www.nicklib.com/library/WIN32API/
Posted by 쿵캉켕
C++2010. 3. 23. 15:37
#. 내용
 - 메모리를 복사하는 함수 입니다.
 - _src에 있는 메모리 영역의 내용을 _Size많큼 _dest로 복사합니다.

#. 원형
 - void *memcpy(void *_dest, const void *_src, size_t _Size);

#. 파라미터
 - void *_dest: 덮어 쓸 메모리 주소.
 - *_src: 읽어 올 원본 메모리의 주소.
 = _Size: 한번에 복사할 바이트 크기.
Posted by 쿵캉켕
카테고리 없음2010. 3. 22. 17:35

#. 내용
 - 파일의 사이즈를 구하는 함수 입니다.

#. 원형
DWORD GetFileSize(
    HANDLE hFile,
    LPDWORD lpFileSizeHigh
);

#. 파라미터
 - HANDLE hFile: 파일 사이즈를 알기 위한 해당 파일에 대한 핸들. 이 핸들은 GENERIC_READ 또는 GENERIC_WRITE로 생성되어야만 합니다.
 - LPDWORD lpFileSizeHigh: 파일 사이즈가 32비트가 넘을 경우 사용하는 파라미터 입니다. 만약 파일사이즈가 32비트가 넘지 않는다면 해당 파라미터는 null을 채웁니다.

#. 리턴 값.
 - lpFileSizeHigh값을 null로 채울 경우: 파일 사이즈가 리턴됩니다.
 - lpFileSizeHigh값을 null로 채우지 않을 경우: 파일 사이즈가 리턴되며, lpFileSizeHigh도 참조하여 사이즈를 구해야 합니다.

#. 참고.
 - 파일 사이즈가 4GB 이하일 경우 사이즈가 32비트 이하기 때문에 lpFileSizeHigh를 사용하지 않지만. 4GB이상일 경우 lpFileSizeHigh에도 값이 채워지게 됩니다.

Posted by 쿵캉켕