미리 밝혀두지만 rein이 정말 본격적으로 Windows 시스템 프로그래밍을 한 것은 작년 부터다. 그런 의미에서 겪었던 삽질 하나를 밝혀둔다.
Linux system에서 널리 사용되는 posix thread (이하 pthread) 라이브러리의 가장 기본적인 동기화 메커니즘은 pthread_mutex_t 라는 타입으로 불리는 일종의 mutex다. 이걸 쓰던 사람이 Windows의 CRITICAL_SECTION 이나 Win32 mutex를 사용할 때 가장 실수하기 쉬운 것.
Win32의 CRITICAL_SECTION이나 mutex는 recursive하게 lock을 잡는 [...]
Xbox360 패드 2개를 가지고 있는데, 1개가 USB연결이되는 유선패드라 윈도우에 연결. Vista는 알아서 드라이버도 받더라(Windows Update)로. 예전에 XP에 연결했을 때도 Xbox360 controller for Windows 던가를 설치하니 연결이 되긴했다.
간만에 지뢰찾기(…)를 하는데 패배…하는 상황에서 패드가 진동해대길래 뭔가하고 봤더니 Xbox 360 패드로 지뢰-_-찾기가 된다. 시험해보니 Windows Vista Games 폴더의 것들은 다 지원이 되는 듯. 일부게임은 듀얼 쇼크 를 사용해서 [...]
전에 포스팅했던 Native C++ 코드 테스팅의 문제에서 계속.
일단 내가 파악한 VS 자체가 죽어버리는 — 그래서 VisualUnitTest++ (이하 VUTPP)가 처리하지 못하는 — 코드는 abort() 뿐인 듯 하다. 그래서 MSDN을 좀 들여다보고는(…) abort() 가 *nix 시스템들 처럼 SIGABRT를 전달하는 방법으로 구현되어있…는 것처럼 보이는 정보를 얻었다.
그리고,
abort() 를 호출하는 UnitTest++ TEST 를 만들고,
SIGABRT를 처리하는 함수 를 단순히 [...]
삼성 SDS에서 개발한 인캅스(IPCOPS)라는 툴이 있다. 사내 보안용 솔루션의 탈을 쓰고 있지만 설명하는 기능 중 대부분(그것도 가장 중요한 것들)은 사실 상 의미가 없다. 그리고 시스템 사용자에겐 성능, 시스템 관리, 프로그램 개발 차원에서 여러가지 불이익을 안겨주는 프로그램이다. 그런 차원에서 간단히(?) 리뷰를 진행해보겠다.
문제점
많은 수의 개발툴들이 인캅스와 충돌한다. 주위에 이 솔루션(인캅스)를 도입한 회사에 다니는 사람이 있다면 좀 물어봐라. [...]
제목이 뭔가 길지만. 여튼 오늘 저녁에 하려고했고, 수행한 일에 관한 것.
어제 포스팅한 것처럼 VisualStudio에서 JUnit 처럼 UnitTest를 실행해주는 애드인을 발견했는데, 이 것을 사용하려면 테스트가 들어있는 바이너리를 DLL로 바꿔줘야 한다. 즉 이런 형식
개별 테스트들을 EXE로 작성한다.
개별 테스트들은 명령행 인자를 기준으로 stdout 혹은 특정 XML파일로 출력한다. (CC.Net은 XML로)
CC.Net은 XML 파일들을 하나로 통합(merge)해서 CI 보고서를 만들어낸다.
VisualStudio에서는 명령행으로 실행시켜서 [...]
뭔가 좀 많이 늦은 감이 있지만(…), rein이 사용하는 유닛 테스트 프레임웍 중 하나인 UnitTest++의 VC++ 애드인을 발견하고 테스트.
이런 GUI add-in을 VS 2005에 통합할 수 있게 된다. (테스트에 사용된 것은 전에 포스팅했던 Closure 구현)
사용하기 위해 필요한 것은 다음과 같다.
필요한 툴들 — VS 2005, UnitTest++, VisualUnitTest++ 애드인 + 샘플
필요한 파일들 — UnitTest++.lib 과 VisualUnitTest++의 [...]
서버의 특정 부분에서 써보자는 얘기가 나와서 사실 관계랑 rein의 개인적인 견해를 정리.
Windows API에는 *nix 에서 user–level thread라고 부르기도하는 “fiber”에 대한 API가 존재한다. 사실 이 Fiber(섬유)란 단어 자체가 약간 말장난이기도한데, 크게 보면 다음과 같은 구성이 된다.
각각이 별도의 메모리(=주소 공간)를 사용하는 프로세스;process
하나의 프로세스 안에서 메모리를 공유하는 스레드;thread들.
역시 하나의 프로세스 안에서 메모리를 공유하지만 스레드가 실행해줘야 돌아가는 fiber. 그리고 [...]
예전에 문자집합;character-set 과 인코딩에 관해서 일련의 포스팅을 했다(#1, #2, #3). 그런데 어제부터 Windows via C/C++ 이란 책을 읽고있는데, 내가 잘못 알고 있던 부분을 발견해서 이전 포스팅에 대한 정정 포스팅.
Windows에서는 UCS-2 인코딩을 사용한다
라고 했었는데 사실이 아닙니다.
Windows는 2000과 그 이후의 버젼들에서 모두 UTF-16 기반으로 동작하며, 그 이전의 NT 커널들만 UCS-2 기반.
여튼 그런 연유로 저 둘을 다시 부연 [...]
5 Comments