무서운 병에 걸린 철수는 병을 치료 하기 위해서 반드시 약을 먹어야 합니다. 먹어야 하는 약은 A약 한알 B약 한알 입니다. 약통 밖으로 나온 A약과 B약을 구분하는 방법은 없습니다. 통 안에 들어있을 때만 통으로 구분이 가능하죠. 육안으로도 구분이 안되고 냄새로나 맛으로나 촉감으로나 어떤 방법으로도 구분을 할 수 없습니다. 철수는 A약을 한 알 B약을 한 알 먹어야 하는데요. A약을 한 알 손바닥에 올려놓고 B약통에서 B약을 손바닥 위에 터는 순간.. 아뿔싸! B약이 두알이나 나와버렸습니다. 손바닥 위에는 A약 한 알, B약 두 알이 있을 텐데요, 둘을 구분할 방법은 절대로 없습니다. 하지만 철수는 한알씩만 먹어야 합니다. 그냥 세 알 다 먹어버리면 큰일나요. 어떻게 해야 철수는 A약과 B약을 한 알씩..
1) 케이크 하나를 칼질 3번으로 정확히 8등분 할 수 있을까요? 불가능 하다면 이유를 말해주세요. 2) 3*3*3 큐브에 있는 조각을 똑같은 크기로 27등분 하려면 쉽게 생각하면 6번의 칼질을 하면 됩니다. 이보다 적은 방법으로 칼질해서 똑같은 크기로 27등분 하는 방법이 있을까요? 없다면 이유를 말해주세요. 답은 아래로 내리면 있어요. 1) 횡으로 한번 자르고 나서 위에서 세로로 한번 가로로 한번 자르면 됨. 2) 6번이 최소다. 똑같은 크기의 정육면체 27조각을 내기 위해서 제일 가운데 있는 정육면체도 만들어야 하는데, 큐브의 정 한가운데 있는 정육면체의 6면을 만들기 위해선 6번의 칼질이 필요하기 때문이다.
오늘의 퀴즈. 1) 다 타는데 30분이 걸리는 도화선이 2개가 있는데 타들어가는 속도는 일정치 않음. 다만 다 타는데 30분이 걸린다는건 확실함. 이 2개를 가지고 45분을 재는방법. 2) 다 타는데 1시간이 걸리는 도화선이 2개가 있는데 타들어가는 속도는 일정치 않음. 다만 다 타는데 1시간이 걸린다는건 확실함. 이 2개를 가지고 45분을 재는 방법. 답은 아래로 내리면 있어요. 1)답 한 도화선의 양쪽 끝에 동시에 불을 붙인다. 해당 도화선의 불이 다 타는 시점이 15분이므로 즉시 남은 도화선에 불을 붙인다. 남은 도화선이 다 타면 30분이 지나므로 합쳐서 45분을 잴 수 있다. 2)답 한 도화선에는 양쪽 끝에 동시에 불을 붙이고 남은 도화선에는 한쪽에만 불을 붙인다. 양쪽 끝에 불을 붙인 도화선이 ..
MFC 클래스 내부에 선언한 static 멤버 변수를 사용하려 하면 어떻게 해야할까? 일단 아무 생각 없이 선언해 놓고 사용을 하면 컴파일러는 링크 에러를 뿌려댄다. 그렇다면 어떻게 해야할까 클래스 헤더에 static int n; 이라는 값을 선언했다면 cpp 상단부에 다음과 같이 해줘야 한다. 변수형 클래스이름::변수이름 = 초기값; 예를 들어 클래스 이름이 Student고 int로 선언된 변수 이름이 TeacherName이면 cpp의 상단에 CString Student::TeacherName = _T(""); 다른 경우 int Student::nGroupNo = 0; 이런식으로 초기값을 주어야 한다. 아 이런걸 보면 참 Java가 쓰기 편한거 같다 -.-;;
사용할 프로그램은 멀티 바이트로 작성하였고, DLL은 유니코드로 작성 하였는데, 프로그램에서 DLL을 불러서 사용하려고 하니 에러가 났다. 에러 내용은 다음과 같았다. error LNK2001: unresolved external symbol "__declspec(dllimport) public: int __thiscall StartCapture(class ATL::CStringT)" (__imp_?StartCapture@@QAEHV?$CStringT@DV?$StrTraitMFC_DLL@DV?$ChTraitsCRT@D@ATL@@@@@ATL@@@Z) 2>D:\실행파일.exe : fatal error LNK1120: 1 unresolved externals CString이 유니코드와 멀티바이트 일때 각각 다..
이번에 프로그램 UI를 일본어로 바꿈에 있어서 상당한 난항에 처한적이 많다. 이것 저것 다 제쳐놓고, 우선 폰트 관련된 이슈만 보더라도 그렇다. 분명히 폰트 바꿔주었는데 출력이 안되는 경우이다. 우선 MS UI Gothic이라는 폰트를 사용했었는데 안나오길래 도대체 이건 무슨 신의 장난인가.. 싶었는데 LoadString 이후에 font를 SetFont 해주는 것과 SetFont 이후 LoadString 해주는 것에 차이가 있었다.. 즉 LoadString으로 멀티바이트에서 SHIFT_JIS로 인코딩된 일본어를 읽어온 후 일치하는 폰트가 없으면 MFC Control에 값이 이상하게 들어가나보다. 지원되지 않는 폰트 일 경우 아예 스트림이 다르게 들어가 버리나...? 하여튼 이번 프로젝트 하면서 느낀건데 ..
아래 내용이 일부 틀려서 정정합니다. 20110719. 아래 처럼 할 경우 폰트가 변경 되는 것이 맞긴 한데, '일본어'등의 특수 문자들을 불러서 Insert하는 경우에 문제가 생긴다. 일본어를 지원하지 않는 폰트가 set돼있는 트리컨트롤에 일본어 String을 insert하려하면 항목이 깨져버린다. 그 이후에 font를 바꿔봤자 이미 삽입된 항목은 깨진 뒤다. 아래서 적은 NMCustomDraw는 삽입 된 뒤에 그려지는 듯 하다. 따라서 font를 적용시킬려면 그냥 CTreeCtrl로 객체를 생성하자마자 SetFont로 폰트를 지정하면 되는 듯 하다. 만약 CTreeCtrl을 상속받은 CustomTreeControl이라면 PreSubclassWindow 메소드에서 SetFont해주도록 하자. -----..
- Total
- Today
- Yesterday
- C++
- linux
- Quiz
- Visual C++
- db
- NDK
- Cloud
- AWS
- algorithm
- database
- driver
- android
- API
- Troubleshooting
- MFC
- 드라이버
- 프로그래밍
- gcc
- source
- jni
- java
- it
- 음악
- winapi
- Python
- 안드로이드
- kering
- C
- jni강좌
- 리눅스
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |