[C++] enum의 기본값

enum 값 중 하나를 기본값으로 사용하려고 했다. 그래서 기본 성별을 나타내는 AG_DEFAULT를 기존 enum 중간에 끼워넣었다. enum ACCOUNT_GENDER { AG_MALE = 1, //!< Male AG_FEMALE = 2, //!< Female AG_NOTDEFINED…

6 Comments

오늘의 C++

How To Organize Template Source Code 템플릿 코드는 헤더 파일에 있어야 한다고 착각하기 쉬운데, 코드 구현을 소스 파일(cpp)에 하면 컴파일(아닌가? 링크였나?) 오류가 나기 때문이다. 그래서 헤더 파일에 구현을 몽땅해놓는 경우가…

5 Comments

경고 수준 높이기

타입 변환에 문제가 발생해 런타임 오류가 나는 걸 발견하여, C++ 컴파일러의 Warning level을 3에서 4로 올리기로 결정했다. 전부터 생각만 해오던 일을 어제 문제가 불거지고 나서야 실천에 옮기게 됐다. 서버 팀원…

2 Comments

x64에서 ADO를 사용할 때 짜증나는 점

윈도우 2003 서버를 기준으로 ADO 바이너리가 두 군데 나뉘어 배포된다. x32 바이너리는 C:\Program Files (x86)\Common Files\System\ado\에 있고, x64 바이너리는 C:\Program Files\Common Files\System\ado\에 있다. 그러니 ADO를 import할 땐 이런 식으로 하면…

3 Comments

시간 다룰 때는 주의하자

WIN32에 있는 FILETIME로 표시된 값을 데이터베이스에 저장하는 코드가 있었다. 시간 값을 저장하기 위해 데이터베이스에서는 numeric 타입을 사용했다. FILETIME이 DWORD 두 개로 구성된 구조체이기 때문에 적당한 기본 타입이 없었기 때문이다. 어쨌거나…

3 Comments

C++에서의 비트 연산

일부 잘못된 비트 연산 사례를 발견했다. 어떤 것이 제대로 된 코드인지 확인하고자 UnitTest++로 단위 테스트 코드를 짜봤다. /* EPA_NONE = 0x00000000, EPA_PRIMARY_KEY = 0x00000001, EPA_DB_INDEXING = 0x00000002, EPA_DB_SELECT = 0x00000004,//…

2 Comments

MDAC 버전 확인하기

로컬 컴퓨터에 설치된 MDAC의 버전을 확인하는 코드이다. from_string 함수는 그저 문자열로 표현된 버전 번호를 숫자로 변환하기 위한 함수일 뿐이다. 소스 코드에 참고한 문서의 링크를 적어놨다. // REFERENCE: codeguru.com/forum/showthread.php?t=231054 template <class…

Comments Off on MDAC 버전 확인하기

Visual Studio 2005의 유용한 핫픽스

여기서 소개할 핫픽스는 모두 Visual Studio 2005 SP1 출시 이후에 나온 것이며, Microsoft Connect 사이트에서 다운로드 받았다. 이 외에도 핫픽스가 많지만, 내게 쓸모 있는 것만 간추렸다. 인텔리센스 Visual Studio 2005의…

0 Comments

ODBC 코드를 ADO로 대체하는 열흘짜리 리팩토링

쓰지 않는 코드 제거 역사적인 이유 때문에 실제론 어디에서도 쓰이지 않는 코드가 생기기 마련이다. 하나씩 주석 처리하고 빌드해보기를 반복하여, 쓸모 없는 코드를 제거했다. 뇌 용량에는 한계가 있으므로 신경 써야 할…

0 Comments

64비트 윈도우 프로그래밍 요약

64비트 윈도우를 프로그래밍 하기 위해서 알아야 할 모든 것들 요약이다. IsWow64Process 함수 64비트 컴파일된 프로그램인지 아닌지를 판단할 때 쓰면 된다. 서버 기동할 때 사용자에게 32비트 모드인지 64비트 모드인지 알려줄 필요가…

0 Comments