[C++] enum의 기본값
enum 값 중 하나를 기본값으로 사용하려고 했다. 그래서 기본 성별을 나타내는 AG_DEFAULT를 기존 enum 중간에 끼워넣었다. enum ACCOUNT_GENDER { AG_MALE = 1, //!< Male AG_FEMALE = 2, //!< Female AG_NOTDEFINED…
enum 값 중 하나를 기본값으로 사용하려고 했다. 그래서 기본 성별을 나타내는 AG_DEFAULT를 기존 enum 중간에 끼워넣었다. enum ACCOUNT_GENDER { AG_MALE = 1, //!< Male AG_FEMALE = 2, //!< Female AG_NOTDEFINED…
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할 땐 이런 식으로 하면…
WIN32에 있는 FILETIME로 표시된 값을 데이터베이스에 저장하는 코드가 있었다. 시간 값을 저장하기 위해 데이터베이스에서는 numeric 타입을 사용했다. FILETIME이 DWORD 두 개로 구성된 구조체이기 때문에 적당한 기본 타입이 없었기 때문이다. 어쨌거나…
일부 잘못된 비트 연산 사례를 발견했다. 어떤 것이 제대로 된 코드인지 확인하고자 UnitTest++로 단위 테스트 코드를 짜봤다. /* EPA_NONE = 0x00000000, EPA_PRIMARY_KEY = 0x00000001, EPA_DB_INDEXING = 0x00000002, EPA_DB_SELECT = 0x00000004,//…
로컬 컴퓨터에 설치된 MDAC의 버전을 확인하는 코드이다. from_string 함수는 그저 문자열로 표현된 버전 번호를 숫자로 변환하기 위한 함수일 뿐이다. 소스 코드에 참고한 문서의 링크를 적어놨다. // REFERENCE: codeguru.com/forum/showthread.php?t=231054 template <class…
여기서 소개할 핫픽스는 모두 Visual Studio 2005 SP1 출시 이후에 나온 것이며, Microsoft Connect 사이트에서 다운로드 받았다. 이 외에도 핫픽스가 많지만, 내게 쓸모 있는 것만 간추렸다. 인텔리센스 Visual Studio 2005의…
쓰지 않는 코드 제거 역사적인 이유 때문에 실제론 어디에서도 쓰이지 않는 코드가 생기기 마련이다. 하나씩 주석 처리하고 빌드해보기를 반복하여, 쓸모 없는 코드를 제거했다. 뇌 용량에는 한계가 있으므로 신경 써야 할…
64비트 윈도우를 프로그래밍 하기 위해서 알아야 할 모든 것들 요약이다. IsWow64Process 함수 64비트 컴파일된 프로그램인지 아닌지를 판단할 때 쓰면 된다. 서버 기동할 때 사용자에게 32비트 모드인지 64비트 모드인지 알려줄 필요가…