안녕하세요

프로그램 과정에서 막혔던 문제들에 대한 해결책 정리


페이지 목록

2015년 3월 26일 목요일

[MySQL] Auto Increment 값을 Select 구문에 넣기

mysql 구문인데 무슨 내용인지 모르겠지만 잘 동작한다.


SELECT @n := @n + 1 n,
       first_name, 
       last_name
  FROM table1, (SELECT @n := 0) n
 ORDER BY first_name, last_name

핵심은 Table Add 할 때 (Select @n := 0) n으로 Add하고
출력 구문에 @n := @n +1 n 으로 작성하면 동작함

Vㅔ리 굳


출처: http://stackoverflow.com/questions/16555454/how-to-generate-auto-increment-field-in-select-query

2015년 3월 19일 목요일

[MFC] MessageBox

Message Box 공부에 Vㅔ리 굳한 사이트 소개

nt MessageBox(HWND hWnd, LPCTSTR lpText, LPCTSTR lpCaption, UINT uType);
- 조그만 별도의 윈도우를 열어서 사용자에게 정보를 전달하거나 질문을 하는 장치
- 인수설명
hWnd : 부모 윈도우의 핸들을 입력한다. 부모가 없을 경우 NULL로 입력
lpText : 출력할 메시지의 내용을 입력한다. 모든 포맷의 문자열을 입력할 수 있다.
lpCaption : 메세지박스의 타이틀에 나타날 문자열을 입력한다. 기본값은 Error 이다.
uType : 메시지박스의 버튼,아이콘,동작방식을 결정한다. 여러 플래그를 | 로 조합사용한다.

인수 : uType (버튼의 종류 선택)
플래그
설 명
MB_ABORTRETRYIGNORE
Abort, Retry, Ignore 세 개의 버튼 표시
MB_OK
Ok 버튼 표시
MB_OKCANCEL
Ok, Cancel 두 개의 버튼 표시
MB_RETRYCANCEL
Retry, Cancel 두 개의 버튼 표시
MB_YESNO
Yes, No, 두 개의 버튼 표시
MB_YESNOCANCEL
Yes, No, Cancel 세 개의 버튼 표시



인수 : uType (버튼의 아이콘 선택)
플래그
설 명
MB_ICONEXCLAMATION, MB_ICONWARNING
MB_ICONINFORMATION, MB_ICONASTERISK
MB_ICONQUESTION
MB_ICONSTOP, MB_ICONERROR, MB_ICONHAND



인수 : uType (디폴트 버튼 지정)
플래그
설 명
MB_DEFBUTTON1
첫번째 버튼이 디폴트 버튼이 된다. (기본값)
MB_DEFBUTTON2
두번째 버튼이 디폴트 버튼이 된다.
MB_DEFBUTTON3
세두번째 버튼이 디폴트 버튼이 된다.
MB_DEFBUTTON4
네번째 버튼이 디폴트 버튼이 된다.



인수 : uType (모달 여부 선택)
플래그
설 명
MB_APPMODAL
hWnd 윈도우의 모달 대화상자로 열리므로 메시지 박스를 닫기 전에는 같은 스레드에 속한 다른 윈도우로 전환할 수 없다. 그러나 다른 스레드의 윈도우로 전환할 수는 있으며 팝업 윈도우로도 전환할 수 있다. 아무 플래그도 지정되지 않으면 이 모드가 디폴트로 적용됨.
MB_SYSTEMMODAL
MB_APPMODAL과 동일하되 항상 위 스타일을 가져 모든 윈도우보다 위에 배치된다. 메모리 부족 등의 긴급한 상황을 알리고자 할 때 이 플래그를 사용.
MB_TASKMODAL
MS_APPMODAL과 동일하되 hWnd가 NULL일 경우 현재 스레드에 속한 모든 최상위 윈도우가 사용 금지된다는 점이 다르다. DLL이나 라이브러리에서 부모 윈도우로 지정할만한 윈도우가 없을 때 이 플래그를 사용한다.



인수 : uType (기타 옵션 선택)
플래그
설 명
MB_DEFAULT_DESKTOP_ONLY
사용자가 로그온안 후 응용 프로그램이 실행되고 있는 디폴트 데스크 탑인 경우만 메시지 박스가 나타나도록 한다.
MB_HELP
도움말 버튼을 보여준다. 이 버튼을 누르거나 F1키를 누르면 Help 이벤트가 발생한다.
MB_RIGHT
메시지를 오른쪽으로 정렬한다.
MB_RTLREADING
아랍이나 헤브루 윈도우즈에서 오른쪽에서 왼쪽 읽기로 출력한다. 한글 윈도우즈에서는 의미가 없다.
MB_SETFOREGROUND
메시지 박스를 포그라운드 윈도우로 만든다. 시스템은 내부적으로 SetForegroundWindow 함수를 호출한다.
MB_TOPMOST
항상 위 옵션으로 메시지 박스를 생성한다.
MB_SERVICE_NOTIFICATION
NT의 서비스 프로그램만 사용할 수 있는 플래그이다. 현재 로긴한 사용자가 없더라도 액티브되어 있는 데스크 탑에 메시지 박스를 출력한다. 이 경우 hWnd는 반드시 NULL이어야 한다.
MB_SERVICE_NOTIFICATION_NT3X
MB_SERVICE_NOTIFICATION와 동일하되 NT 3.51버전에서 사용한다.


- 리턴값 : 메시지 박스를 생성할 메모리가 부족할 경우 0을 리턴한다. 그 외의 경우 사용자가
누른 버튼의 ID를 리턴한다.

버  튼
IDABORT
Abort 버튼을 누를 경우
IDCANCEL
Cancel 버튼을 누를 경우 Esc키를 눌러 대화상자를 닫을 때도 이 값이 리턴된다.
IDIGNORE
Ignore 버튼을 누를 경우
IDNO
No 버튼을 누를 경우
IDOK
Ok 버튼을 누를 경우
IDRETRY
Retry 버튼을 누를 경우
IDYES
Yes 버튼을 누를 경우
 


출처: http://devlog.cafe24.com/xe/index.php?mid=board_oHhP60&search_target=tag&search_keyword=MessageBox&document_srl=288

2015년 3월 4일 수요일

Unresolved External Symbol CWinApp::writeProfileStringAd

위와 같은 말도 안되는 에러가 발생하였다.

google에 검색을 해봐도 WriteProfileStringAd란 함수는 존재 조차 하지 않는다.

그런 이상한 에러가 발생하여 반나절을 고생한 끝에 ...

오타임을 발견하였다.

 위와 같은 어의없는 실수가 발생한 원인은 바로

 Function명에서 마우스 우클릭 Go to Definiton Of WriteProfileString 으로

점프해서 들어가서 나도 모르게 오타 d 를 추가 해버린것이다.

 기본적으로 제공하는 함수에는 Definition 점프하지 않도록 주의해야 겠다..