전체 글 389

멀티미디어 프로그래밍 참조

멀티미디어 프로그래밍 제1장 WAV 파일을 작동하자 ⼗ 20 ⼗ 멀티미디어란 과연 어디까지이고 어떤 것들이 있는 것일까? 멀티미디어란 동영상, 음악, 텍스트를 자유자재로 이용할 수 있는 매체라고 말할 수 있습니다. 여기에 통신, TV, HOME AUTOMATION 등 각종 기능을 내재하고 상호 대화를 할 수 있는 컴퓨터를 말하기도 합니다. 윈도 95에서는 쉽게 멀티미디어 프로그래밍을 할 수가 있습니다. 윈도 95에서는 MCI(Media control Interface) 서비스를 제공하기 때문에 프로그래머는 MCI만 조절함으로써 영상과 음성을 조작할 수 있습니다. MCI에서 제공하는 매체들은 음성 파장 파일(*.WAV), CD-AUDIO, 동영상 파일(*.AVI), 각종 비디오 매체 등등 입니다. 이런 매..

API 2010.04.09

midi 파일 프로그래밍 참조

///////////////////////////////////////////winapi.co.kr 질답글 중~~~MDI는 아니고 MCI 입니다. API정복 책이 있다면. 그 책에도 간단히 나와 있긴 합니다. 물론 개정판의 경우는 VOLUME 2 에 있습니다. MCI.. 사실 당장 필요한 함수는 두개 뿐입니다. 그것도 명령 메시지 방식에 하나... 명령 문자열 방식에 하나.. 즉 둘중에 한개만 쓰면 됩니다. 명령 메시지 방식의 경우는 mciSendCommand.. 명령 문자열 방식의 경우는 mciSendString... 명령 메시지 방식의 경우는.. 윈도우 프로시저 방식과 똑같습니다... 메시지 상수값으로 구분하고.. 나머지 몇몇 인자들에.. 여러 데이터를 구겨넣든지.. 포인터 타입을 캐스팅 하든지.. ..

API 2010.04.09

전역 스레드 핸들을 다룰시 유의사항

HANDLE hThread=CreateThread~~~; CloseHandle(hThread); 이런식으로 쓰이는데,,, 전역변수 핸들을 선언하는 경우 좀 유의해야 할 듯 하다. HANDLE g_ahThread[64]={NULL,}; g_ahThread[index]=CreateThread~~~; ... ... .. TerminateThread(g_ahThread[index], 0); CloseHandle(g_ahThread[index]); 형식으로 쓰이는데. 핸들을 닫은 후 g_ahThread[index]=NULL;이라는 코딩을 해주는게 좋다. 스레드의 핸들은 조사해 보니 0x7bc 이런식으로 아주 낮은 자리수를 취하고 있었다. 어떤 스레드를 닫은 경우, 그 핸들 번호가 새로 생성된 스레드에 할당되는 일..

API 2010.03.16

TerminateThread사용시 생존여부 판단 주의(GetExitCodeThread 사용시 리턴값 주의)

TerminateThread 로 강제종료시킬 경우,,, 스레드가 종료작업을 모두 마친 후에 리턴되지 않고, 커널에 종료시키라는 신호만 보내고 바로 리턴하는 듯하다.(이를테면 비동기적 처리) DWORD WINAPI ThreadFun(LPVOID lp) { Sleep(3000); return 0; } { DWORD tid; HANDLE hOneThread=CreateThread(NULL, 0, ThreadFun, NULL, 0, &tid); DWORD dwExitCode=NULL;TerminateThread(hOneThread, 0x9999); BOOL bSuc=GetExitCodeThread(hOneThread, &dwExitCode); char szText[256]={0}; wsprintfA(szText..

API 2010.03.16

mylg070 무선 공유기 설정시 주의,,, 다른집서 훔쳐서 사용하는 난감한 경우...;;;

예전엔 전화기 신청하면 저 무료 무선 공유기를 줬는데 지금은 어쩐지 모르겠다. 속도는 g방식이고 54메가가 최고 연결속도인듯 하다. 지금은 N방식 공유기가 나와서 광속랜에서 큰 메리트는 떨어지겠지만 공짜라는 점에서 좋기는 하다. 이 공유기를 1년가량 잘 사용해오던 중에,,, 요즘 인터넷을 하다가 간혹 특정 시간대에 좀 끊김 현상이 발생하였다. 이것저것 만져보고 하다 보니... 뭔가 촉이 왔다. 예전의 생소한 기억을 살려, 인터넷도 뒤져 보고, mylg070 무선 공유기 설정 인터넷화면을 띄웠다. http://192.168.123.254 을 치면 무선랜 설정화면으로 접속된다. 암호가 뭔지 몰라 역시 검색해서 admin을 치고 공유기 연결상태를 보니... 연결된 컴퓨터가 4대였다. 집에는 메인컴 1대, 놋북..

잡다 2010.03.16

정렬, 검색 알고리즘에서 꼭 한 번 해볼 과제

STL에서 사용하는 정렬(stable, non-stable 둘 다) 구현해 볼 것 검색 중 실제로 B트리와 레드블랙트리 구현할 실제로 써봄직한 예제를 직접 만들고 성능을 테스트해 볼 것 참고) B트리의 경우 외부검색방식으로(하드디스크에서 파일 오픈) 구현 B+트리 구현해 볼 것 검색 알고리즘 관련해서는 스킬의 날카로운 향상을 위해,,, C / C++ 모든 버전으로 작성해 볼 것

레드블랙트리(RB Tree) 정리 및 분석

이진 검색 트리의 경우 인서트시 오름차순이나 내림차순으로 넣으면 우측자식으로만 혹은 좌측자식으로만 계속 자라는 편향적인 구조가 되버린다. 이것은 트리의 깊이가 집어 넣는 개수만큼 계속 깊어지므로 결국 순차검색(Sequence Search)과 다름없는 최악의 결과가 된다. 순차적으로 집어넣는 경우는 일상적으로도 아주 많을 것이다. 그러므로 이런 삽입과 삭제시 밸런스를 맞추는 알고리즘에 대한 연구가 많이 진행되었다. 레드블랙트리는 밸런스 트리의 대명사인 B트리에서 차원이 3인 경우와 이론적 구조가 같다. 다만 이진트리는 각 노드에 요소가 한개밖에 들어갈 수 없으므로 이를 레드와 블랙이라는 논리적인 요소를 도입함으로써 이진트리의 형식으로 구현한 것이다. 실제로도 B트리나 2-3-4트리 다음에 등장한 이론으로 ..

B트리 삽입, 삭제 도식화와 좀 특이한 방식 분석

위 파일은 인터넷서 얻은 도식화 파일이다. 그림으로 설명이 참 깔끔하게 잘 된듯 하다. 참조... http://swblog.net/entry/B-Tree B트리의 처리 방식은 제각각인 듯 하다. B트리의 원칙만 잘 지키면 되는 듯 하다. 삽입의 경우 좀 특이하게 처리했던 경우는(이재규 알고리즘 강좌) 일단 위에서부터 아예 포화상태에 놓인 경우(5차원시 노드에 5개 요소가 있는경우) 먼저 분할시키면서 아래로 내려와서 마침내 들어갈 자리를 찾으면 해당 노드에 요소를 삽입하는 방식이다. 이때문에 해당 노드에서 분할시에 부모가 오버플로우될 상황은 없다.(부모노드 요소의 갯수는 모두 4개 이하이므로) 다른 방식은 위 도식화에서 표현하듯이 저질러놓고 수습하는 방식인 데 이게 일반적인 경우인 듯 하다. 일단 해당 값..