전체 글1383 자바 가상 머신(JVM), 강제종료 원인, 종료 훅 문제 자바 가상 머신(JVM), 강제종료 원인, 종료 훅 문제 자바 가상 머신 JVM이 종료되는 두 가지 경우를 생각할 수 있는데, 하나는 예정된 절차대로 종료되는 경우이고, 또 하나는 예기치 못하게 임의로 종료되는 경우이다. 절차에 맞춰 종료되는 경우에는 '일반'(데몬이 아닌) 스레드가 모두 종료되는 시점, 또는 어디에선가 System.exit 메소드를 호출하거나 기타 여러 가지 상황(예를 들면 SIGINT 시그널을 받거나 CTRL+C 키를 입력한 경우)에 자바 가상 머신 JVM 종료 절차가 시작된다. 이런 방법이 자바 가상 머신 JVM을 종료하는 가장 적절한 방법이며, 그 외에 Runtime.halt 메소드를 호출하거나 운영체제 수준에서 JVM 프로세스를 강제로 종료하는 방법(예를 들어 SIGKILL 시그.. 2017. 9. 23. [윈도우API] WinCE DIB 섹션 프로그래밍 (tagRGBQUAD) [윈도우API] WinCE DIB 섹션 프로그래밍 (tagRGBQUAD) 앞서 설명한 것(▶DIB 섹션 포스팅 1)처럼 이미지가 픽셀당 8비트 이하인 경우 BITMAPINFOHEADER 구조체 다음에는 RGBQUAD 구조체의 배열이 이어진다. RGBQUAD 구조체는 다음과 같다. 123456typedef struct tagRGBQUAD { /* rgbq */ BYTE rgbBlue; BYTE rgbGreen; BYTE rgbRed; BYTE rgbReserved;} RGBQUAD;cs 이 구조체는 256단계의 적, 녹, 청 색상을 표현한다. 물론 이 구조체의 색상들은 디스플레이 장치의 사양에 따라서 표현되지 않을 수도 있다. RGBQUAD 구조체 배열은 DIB 팔레트를 기술한다. 팔레트란 비트맵에 사용된.. 2017. 9. 22. [윈도우API] DIB 섹션 프로그래밍 (WinCE 기준) [윈도우API] DIB 섹션 프로그래밍 (WinCE 기준) 윈도우API CE에서 비트맵 파일을 읽는 작업은 쉽다. 파일을 읽어서 비트맵 정보를 얻어내는 작업 외에도 화면에 있는 비트맵을 읽어서 조작하고, 조작한 비트맵을 화면에 다시 그리는 작업이 필요할 때도 있다. 이런 작업도 DDB보다 윈도우API DIB가 쉽게 처리할 수 있다. DDB에서도 장치 의존적인 비트를 얻어낼 수 있지만 버퍼의 포맷이 장치 의존적이므로 복잡하다. DIB를 사용하면 DIB 섹션을 사용해서 디스플레이 장치의 포맷에 상관없이 이미 정의되어 있는 포맷의 비트맵으로 읽을 수 있으므로 편리하게 프로그램을 작성할 수 있다. 윈도우 운영체제의 발전과 함께 다양한 윈도우API DIB 생성 함수를 지원하게 됐지만 윈도우 CE는 가장 유용한 다.. 2017. 9. 21. C++ 상속, 다이아몬드 문제란? 그리고 피하는 방법 C++ 상속, 다이아몬드 문제란? 그리고 피하는 방법 위 그림은 C++ 상속, 다이아몬드 문제를 이해하는 데 도움이 됩니다. 클래스 A에서 파생되는 클래스 B와 C가 있다고 가정합니다. 그리고 C++ 상속(다이아몬드를 유발하는 다중 상속)으로 클래스 B와 C의 파생 클래스 D도 생성합니다. (상상만으로도 한숨 나오는 C++ 상속 구조입니다) 여기서 C++ 상속, 다이아몬드 문제의 발생 이유가 나타납니다. 위 그림을 토대로 구체적인 코드를 작성해 보겠습니다. 123456789101112131415--Animal 클래스는 윗 그림의 클래스 D와 같습니다.-- class Animal { -- ... -- }; // base class{ int weight; public: int getWeight() { ret.. 2017. 9. 19. 이전 1 ··· 267 268 269 270 271 272 273 ··· 346 다음