윈도우에서 시간 측정하기
이 글은 월간 마이크로소프트웨어(일명 마소) 2010년 4월 21일자 뉴스캐스트에 기고한 글입니다. 물론 구성이나 내용 상의 차이가 있을 수 있습니다. 게임 개발자에게 있어 시간 측정은 꽤나 중요한 문제이다. 온라인 게임이라면 특히…
이 글은 월간 마이크로소프트웨어(일명 마소) 2010년 4월 21일자 뉴스캐스트에 기고한 글입니다. 물론 구성이나 내용 상의 차이가 있을 수 있습니다. 게임 개발자에게 있어 시간 측정은 꽤나 중요한 문제이다. 온라인 게임이라면 특히…
OleDbConnection Very convenient because you can manipulate an Excel file as if it is a DBMS. However, OleDbConnection dosen't support special behaviors like adding a color to a cell. MDAC(OleDbConnection…
앞서 언급한 이상한 정수 캐스팅 상황과 관련이 있는 일이다. C#과 C++ 둘다 쓰는 32비트 정수값이 있다. 간단히 설명하자면 Enum을 쓸 자리에 어떤 사연이 있어서 C#쪽에선 int를 나열하고 C++에선 enum을 이용했다.…
간단한 정수 캐스팅 하나! long longValue = 1; int intValue = longValue; 이 코드는 컴파일러 오류를 발생시킨다. 오류 CS0266: 암시적으로 'long' 형식을 'int' 형식으로 변환할 수 없습니다. 명시적 변환이 있습니다.…
채팅 스크립트를 짜다가 스크립트 엔진에서 엄청난 버그를 발견했다. 꼼수를 써서 고치긴 했는데, 마지막 순간까지도 제대로 된 해결책인지 확신이 안 서서 마음을 졸였다. CLR 환경(C#, C++/CLI 등)에는 Thread Local Storage가 몇…
C++/CLI 코드를 작성하다가 괴상한, 아니 능력이 모자라서 이해 못하는 현상을 발견해서 이 블로그 구독자들의 도움을 받아볼까 합니다. 우선 다음 코드를 봐주세요. inline MyString marshal_as(System::String^ const & _from_obj) { if(_from_obj !=…
Beauty of any fine art comes not only from creativity but also from discipline. So it is with programming. C++ is a large language, and there is ample room to…
How To Organize Template Source Code 템플릿 코드는 헤더 파일에 있어야 한다고 착각하기 쉬운데, 코드 구현을 소스 파일(cpp)에 하면 컴파일(아닌가? 링크였나?) 오류가 나기 때문이다. 그래서 헤더 파일에 구현을 몽땅해놓는 경우가…
타입 변환에 문제가 발생해 런타임 오류가 나는 걸 발견하여, C++ 컴파일러의 Warning level을 3에서 4로 올리기로 결정했다. 전부터 생각만 해오던 일을 어제 문제가 불거지고 나서야 실천에 옮기게 됐다. 서버 팀원…
윈도우 2003 서버를 기준으로 ADO 바이너리가 두 군데 나뉘어 배포된다. x32 바이너리는 C:\Program Files (x86)\Common Files\System\ado\에 있고, x64 바이너리는 C:\Program Files\Common Files\System\ado\에 있다. 그러니 ADO를 import할 땐 이런 식으로 하면…