<
isalpha()

 함수형태 

 isalpha(int c)

 파라미터

 c − 확인할 문자(ASCII)

 리턴

 0 != c가 알파벳, 0 = c는 알파벳이 아님




isdigit()

 함수형태 

 isdigit(int c)

 파라미터

 c − 확인할 문자(ASCII)

 리턴

 0 != c가 숫자, 0 = c는 숫자가 아님




	CString strTest = _T("ABCDEFG01234");
	if (isalpha(strTest[2]))
	{
		// true
		// ...
	}
	else
	{
		// false
		// ...
	}
	if (isdigit(strTest[7]))
	{
		// true
		// ...
	}
	else
	{
		// false
		// ...
	}


VisualStudio가 설치된 환경에서 프로그램 실행 후 발생된 문제를 디버깅할 때 덤프파일을 이용한 방법이 사용된다.


물론, 브레이크포인트 걸어서 추적하는 방법이 가장(?) 빠를테지만, 디버깅 상태로 실행된 경우가 아닌경우에는 덤프파일로 확인하는 방법을 사용한다.


일단 프로그램에서 크래쉬가 나거나, Leak등이 발생해서 프로그램이 종류될때, 덤프파일(*.dmp)이 생성되도록 코드를 추가해야한다. 


이부분은 구글링으로 손쉽게 찾을 수 있다. (키워드 : miniDump)



pdb파일은 프로젝트 설정에서 생성하도록 설정 할 수 있다.



프로젝트 속성- 링커 - 디버깅 탭에서 '디버그 정보 생성' , '프로그램 데이터베이스 파일 생성' 부분만 변경하면 된다.



코드를 짜다 보면 빈줄을 정리하고자 할때가 자주 있다.


여려명이 작업한 코드를 Merge한다거나, 외부 소스를 사용한 경우, 테스트를 마치고 최적화 단계, 그냥 빈줄이 너무 많아 보기 싫어서..


한두줄이면 그냥 지우는데 10줄이 넘어가면 슬슬 지루하고 짜증이 나기 마련..


찾아보니 간단한 정규식으로 빈줄만 삭제가 가능하다.



VisualStduio에서 찾기 및 바꾸기 (단축기 Ctrl + Shift + F)

^(?([^\r\n])\s)*\r?$\r?\n


찾을 내용에 위 문자열을 넣고 바꿀내용은 비워둔 상태에서 정규식 사용에 체크하고 사용하면 된다.


찾는 위치를 선택영역 또는 현재문서로 한정해서 사용해야한다. 


보통 이 항목이 전체 솔루션으로 되있는데 이상태에서 모두 바꾸기를 해버리면 리소스 파일까지 바꿔버리니, 꼭 선택영역이나 현재문서로 한정해서 사용하자.


선택영역은 말그대로 빈줄을 삭제할 영역을 블록 씌운 상태에서 해당 선택 내용안에서만 찾겠다는 거다.


VisualStudio 2013에서 잘 작동한다.


출처 : http://kjcoder.tistory.com/632 


알파벳 대소문자, 숫자를 포함한 랜덤한 문자열을 생성하는 함수



출처는 StackOverflow

void gen_random(char *s, const int len)
{
	static const char alphanum[] =
		"0123456789"
		"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
		"abcdefghijklmnopqrstuvwxyz";

	for (int i = 0; i < len; ++i) {
		s[i] = alphanum[rand() % (sizeof(alphanum) - 1)];
	}

	s[len] = 0;
}

여기에 문자 중복이 안되게끔 하거나, 특수문자를 추가하는 방법도 고려해봐야겠다.


C#에서는 FILE 핸들러로 바로 확인이 가능한데 C++는 한줄에 쓰기 번거러워 따로 함수를 만들어서 사용한다.


유니코드가 아닌 프로젝트도 있어 분기처리 해준다.



bool isExistFile(CString _strFile)
{
#ifdef _UNICODE
	return(_waccess_s(_strFile, 0) != -1);
#else
	return (_access_s(_strFile, 0) != -1);
#endif
	
}


MFC에서 ComboBox(콤보박스) 사용시 사용자가 임의적으로 항목을 수정할 수 있다.


물론 수정된 값을 받는 경우도 있지만, 해당 선택된 항목의 index값을 가져와서 쓰는경우 매개변수가 잘못되었다는 등의 오류가 발생 할 수 있다.


사용자가 수정할 항목이 아닌 경우라면 이를 ReadOnly로 바꿔줄 필요가 있다.


ReadOnly 설정은 따로 코드를 수정하는 경우도 있지만, 간단하게 해당 리소스 속성항목에서 


Type를 "Drop List"로 바꿔주면 된다.


아래는 Reference에 나와있는 Style Type별 상태

StyleWhen is list box visibleStatic or edit control
SimpleAlwaysEdit
Drop-downWhen dropped downEdit
Drop-down listWhen dropped downStatic


+ Recent posts