맵의 오버레이를 동적으로 로딩하는데 ItemizedOverlay의 getIndexToDraw에서 자꾸만 ArrayIndexOutOfBoundsException이 났다.. 보니까 오버레이의 추가와 삭제가 쓰레드를 이용하여 동시에 진행되면서, 있지도 않은 Array의 Index를 참조하면서 나는 것 같았다.. 아오... 그냥 삭제를 다 한담에 접근을 하던지.. 삭제하면서 어디선 add하고 그러니까 계속 저 에러가 나지.. ArrayList는 thread-safe하지 않기 때문에 참.. 슬프다 ㅠ_ㅠ 수 시간의 삽질 끝에 드디어 익셉션을 잡아냈다.. 플밍 경력이 오래된 사람이라면 쉽게 잡을 수 있는 부분이었을텐데.. 난 도대체 몇시간이나 소모한건지.... 여튼 잡게 돼서 너무 좋았음.
CButton을 상속 받은 CMonitorButton을 하나 만들어서 버튼을 동적 생성 하기 위한 프로그램을 구현했다. CMonitorButton에선 오너 드로를 위해 DrawItem을 호출했고, OnBnClicked를 오버라이딩해서 자신의 nID값을 nSelectedMonitor 변수에 리턴해주었다. CMonitorButton을 생성하기 위해 다음과 같은 코드를 구현하였는데 for(int i = 0;i Create(strMonitorNum,WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON|BS_OWNERDRAW,rtMonitor[i], this,i); } 마지막 인자인nI..
보통 mfc는 선언부 파일(*.h)과 구현부 파일(*.cpp)을 나누어 놓는다. 선언부 class에서 static 멤버 변수를 선언하고 구현부에서 사용하려고 하면 Link시점에 에러가 난다. 예를 들어 다음과 같은 소스가 있다고 해보자 StaticSample.h (선언부) //StaticSample.h class CStaticSample { private: static int m_nNumofClass; public: CStaticSample(void); ~CStaticSample(void); static int GetNumofClass(void); }; StaticSample.cpp (구현부) //StaticSample.cpp #include "StaticSample.h" CStaticSample::CS..
처음에 시도한 방법은 mapView.setOnTouchListener를 등록해서 하는 방법인데.. 오직 한번 밖에 실행이 안된다. 왜 그런지는 도저히 이유를 모르겠다.. 심지어 수많은 블로그에도 [The handler isn't being executed. I didn't find the exact reason for this behavior yet.] 정도로 써져 있다. 그다음엔 onTouchEvent를 Override 해봤다.. 그래도 마찬가지다.. setOnTouchListener가 안되니 이것마저 안되는 것 같다.. 레퍼런스 문서를 찾다가 dispatchTouchEvent라는 녀석을 발견했고, 이 녀석을 오버라이드 해 보았다. @Override public boolean dispatchTouchE..
안드로이드 쓰레드 종료를 위해 Thread.stop(), Thread.suspend() 다 해보았지만 모두 deprecated 되어서 사용하면 안될 뿐더러, 정상 동작 하지도 않는다. 그럼 남은건 interrupt() 하나 뿐인데.. 이걸 쓴다고 해서 쓰레드가 바로 종료되는건 아니더라.. 보니까 interrupt() 쓴다고 쓰레드가 그냥 죽는게 아니고 쓰레드 내부에 직접 구현을 해줘야 했다. 중복 쓰레드 실행 시 이전 쓰레드를 죽이는 것도 처음에 boolean 변수 만들어서 죽여주는 그런 방법으로 시도했다가, interrupt()와 interrupted()를 활용 하는 것이 훨씬 간결 하다는 것을 알았다. 구현 소스는 다음과 같다. public class ThreadKillDemo extends Acti..
Kernel Module 뼈대 소스 #include #include #include #include #include #include #include #define CALL_DEV_NAME "calldev" #define CALL_DEV_MAJOR 240 static int onevalue = 1; static char *twostring = NULL; module_param(onevalue,int,0); module_param(twostring,charp,0); /** * module_param(variable,type,property) * * type / variable * * short : short * ushort : unsigned short * int : int * uint : unsigned ..
함수를 처리한 결과가 제대로 나오지 않는다면 그건 뭘까. 분명 제대로 함수 사용했는데 값이 null로 나오면 그것은 무엇일까... 이 심오한 것의 해답은 메소드의 sync/async(동기/비동기) 비슷하게 생각하믄 되겠다.. 전에 Android에서 MyLocationOverlay를 쓰려던 적이 있었다. 뻔한 소스지만 MyLocationOverlay myLocationOverlay = new MyLocationOverlay(this,mapView); myLocationOverlay.enableMyLocation(); mc.animateTo(myLocationOverlay.getMyLocation()); 하면.. 내 좌표를 못 구해온다... 왜일까... 잘 한거 같은데 왜 못 구해올까.. 그것은.. enab..
이 글은 아래 링크의 내용을 발췌한 글 입니다. (http://technet.microsoft.com/ko-kr/library/cc700775.aspx) . . . UAC의 기본적인 형태는 간단합니다. 명시적인 Administrator 계정을 제외하고, 로그온 사용자를 일단 표준 사용자 권한(Users)으로 보는 것입니다. 기술적 표현으로는 Split Access Token(분리된 접근 토큰)이라고 합니다. Split Access Token은 모든 권한을 가진 보안 토큰을 생성한 후, 관리자 권한과 그룹을 뺀 다른 UAC 접근 토큰을 생성합니다. 이를 Linked Token이라고 합니다. Linked Token을 사용하던 사용자가 모든 권한이 필요한 경우, 이를 확인하는 절차를 밟은 후, 권한을 부여받게..
- Total
- Today
- Yesterday
- Visual C++
- C
- android
- db
- jni
- 안드로이드
- NDK
- Quiz
- gcc
- linux
- it
- API
- Troubleshooting
- winapi
- java
- 드라이버
- algorithm
- AWS
- Python
- 프로그래밍
- C++
- kering
- jni강좌
- source
- MFC
- driver
- Cloud
- 음악
- database
- 리눅스
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |