본문 바로가기

윤성우 윈도우 시스템 프로그래밍14

[Programming] (윈도우 시스템 프로그래밍) 64bit 기반 프로그래밍 / 에러검출, 에러코드가져오기, GetLastError() 64bit 기반 프로그래밍 64bit 기반 시스템에서 자료형에 대해 고려한 프로그래밍 이다. LLP64 vs LP64 32bit 시스템과 호환성을 중시한 모델. 운영체제 모델 char short int long pointer Windows LLP64 1byte 2byte 4byte 4byte 8byte UNIX LP64 1byte 2byte 4byte 8byte 8byte 64bit 와 32bit 공존의 문제점 int arr[10]={0,}; int arrVal=(int)arr; //데이터 손실 배열 arr 는 포인터다. 배열에서 값을 참조할때 arr[0] 으로 참조하는데, 이것은 *arr 과 같다. 포인터 이므로 8byte 의 크기를 가진다. 하지만 4byte 인 int 로 형변환을 하면 상위 4byt.. 2020. 8. 12.
[Programming] (윈도우 시스템 프로그래밍) Windows 32bit 와 64bit WIN32 vs WIN64 64bit 와 32bit 구분법 한번에 송수신 가능한 데이터 크기 (BUS) CPU 에서 처리 가능한 명령어의 크기 (Register 의 크기) 32bit -> 64bit 의 특징 프로그램으로 표현할 수 있는 범위의 증가 활용 가능한 메모리의 확장 (메모리에서 접근할 수 있는 범위 증가) 32bit 시스템에서는 포인터가 32bit 크기이고, 2^32-1 만큼 표현할 수 있다. 64bit 시스템에서는 포인터가 64bit 크기이고, 2^64-1 만큼 표현할 수 있다. ! 내컴퓨터 비트수 확인 제어판에 시스템에서 확인할 수 있다 ! 프로그래머 입장에서 64bit 특징 활용 가능한 메모리가 50byte 라고 가정해보자. (프로그램을 실행할때 할당하는 메모리는 고려하지 않는다.) exa.. 2020. 8. 12.
[Programming] (윈도우 시스템 프로그래밍) MBCS 와 WBCS 동시지원 MBCS 와 WBCS 동시지원 MBCS 는 기존 작성된 프로그램과의 호환성, Unicode 를 지원하지 못하는 환경에서 프로그램을 동작시킬때와 같은 이유로, WBCS 의 장점에도 불구하고 WBCS 로만 프로그램을 작성할 수 없다. 서버프로그램은 문제가 되지 않는다. 서버는 업데이트가 편리하고. 개인에게 요구 하지 않기 때문이다. 기업을 대상으로 하는 프로그램은 WBCS기반 프로그래밍이 가능하다. 하지만 최종 클라이언트(유저) 고려하면, MBCS 와 WBCS 동시지원하는 프로그램을 만드는게 좋다. 만약 MBCS, WBCS 기반의 프로그램을 각각 만든다면, 하나의 프로그램인데 두개가 존재하기때문에 하나바꾸면 다른 하나를 또 바꿔야하기때문에 유지보수가 어렵고, 배포하는과정에서도 문제가 나타난다. 이러한 이유로.. 2020. 8. 9.
[Programming] (윈도우 시스템 프로그래밍) 윈도우에서 유니코드 윈도우에서 유니코드 문자셋의 종류와 특성 SBCS ( Single Byte Character Set ) 1byte 로 문자를 표현. example : ASCII Code MBCS ( Multy Byte Character Set ) 한글은 2, 영어는 1 byte로 문자를 표현. WBCS ( Wide Byte Character Set ) 2byte 로 문자를 표현. example : UNICODE #include #include int main(void){ char str[]="ABC한글"; printf("%d\n%d\n", sizeof(str), strlen(str)); return 0; } 실행결과 10 9 sizeof 연산자는 NULL 문자를 포함하기 때문에 ,길이가 1 늘어납니다. 영어는 1 byt.. 2020. 8. 6.