3 Articles, Search for 'Visual C'

  1. 2008/03/14 GDI+에서 Round Rectangle 그리기.
  2. 2008/03/14 VC macro __FUNCTION__ UNICODE에서 사용하기
  3. 2007/12/12 MulDiv
프로그래밍/Visual C2008/03/14 19:00


사용 예)


자료 참고: codeproject.com

2008/03/14 19:00 2008/03/14 19:00
Posted by 나그네
Tags ,
프로그래밍/Visual C2008/03/14 18:47

디버깅 편의를 위하여
#define __T_PRINT(val)  val.Print(__FUNCTION__, __FILE__, __LINE__)
과 같이 이용하고 있습니다. 매번 __FUNCTION__, __FILE__을 명시하기 귀찮아서...

멀티바이트로 컴파일시에는 문제가 없으나 유니코드로 컴파일시에는
error C2664: 'CTimeCounter::Print' : 매개 변수 1을(를) 'const char [26]'에서 'CString'(으)로 변환할 수 없습니다.
와 같이 오류가 발생하네요



혹은


와 같이 변경하여 사용해야 컴파일시 오류가 발생하지 않습니다.

_T()를 역추적하면...
#define __T(x)      L ## x
#define _T(x)       __T(x)
라고 되어있네요.

#define __WFUNCTION__ L ## __FUNCTION__
와 같이 바로 L ## x 로 변경시
error C2065: 'L__FUNCTION__' : 선언되지 않은 식별자입니다.
와 같은 오류가 나는것으로 봐서는 전처리 순서때문에 생기는 문제 같네요.

다국어 처리를 위한 Unicode변환.. 생각보다 손이 많이 가진다는..

2008/03/14 18:47 2008/03/14 18:47
Posted by 나그네
프로그래밍/Visual C2007/12/12 14:53
int MulDiv(int nNumber, int nNumerator, int nDenominator);
//nNumber * nNumerator / nDenominator

사용예)
    TRACE("%d", 12*34/12);
        //출력 = 34
    TRACE("%d", 1234567*8900000/1234567);
        //출력 = 907
    TRACE("%d", MulDiv(1234567, 8900000, 1234567));
        //출력 = 8900000
    TRACE("%ld", (LONGLONG)1234567*8900000/1234567);
        //출력 = 8900000
    TRACE("%d", MulDiv(1234567,8900000,0));
        //출력 = -1

각각의 차이점은??? ^^;

2007/12/12 14:53 2007/12/12 14:53
Posted by 나그네