Micorsoft Foundation Class Know How

1) CString 클래스


함수

내용

GetLength

설정된 문자의 길이를 반환

IsEmpty

현재 클래스에 문자열 버퍼가 비워 있는가?

Empty

문자열을 삭제하여 버퍼를 비운다.

GetAt

문자열의 특정 위치의 문자 값을 얻는다.

SetAt

문자열의 특정 위치에 새로운 문자를 삽입한다.

Compare

문자열과 인자의 문자열을 비교한다.

MakeUpper

문자열의 소문자를 대문자로 바꾼다.

MakeLower

문자열의 대문자를 소문자로 바꾼다.

Format

문자열에 형식을 갖추어 문자들을 넣는다.

Find

문자열에서 특정 문자나 문자열을 찾는다.

2) 헝가리안 표기법


접두어

데이터타입

접두어

데이터 타입

a

배열(Array)

i

인덱스

b

BOOL

l

long int

ch

character

lp

long(far) pointer

cb

count of bytes

n

int

dw

unsigned long DWORD

sz

NULL로 끝나는 문자열

h

Handle

w

unsined int WORD

3) string 형 char *에 복사

const char *std::string.c_str(); char*으로 반환

strcpy( ( char * ) , std::string.c_str() ); char *에 string의 값 반환.


4) CString <-> std::string

1, CString -> std::string

CString str = "hello";

std::string stdStr = str.GetBuffer(0);

2. std::string -> CString

std::string stdStr = "hello";

CString str = stdStr.c_str();

4번 잘 안됨. 나중에 다시 고칠것


5)char * 형에 string, CString 값 넣기

char *pStr = (LPSTR)string.data();

char *pStr = (LPSTR)(LPCTSTR)cstring;6


6) CString, TCHAR -> LPCSTR, LPCWSTR 등 형으로 변환

MultiByteToWideChar( CP_ACP, 0, CString, CString.Length(), ( LPWSTR )LPCWSTR, sizeof( CString ) );


7) Debug Assertion Failed!

원인: 배열의 마지막 원소를 Null로 처리를 안해준다거나 할 때 발생하는 것.

DoDataExchange()에서 에디트 컨트롤(DDX)를 제대로 지워 주지 않았음.

+ Recent posts