본문 바로가기

코드

(13)
MFC에서 OpenGL 사용하기 MFC에서 OpenGL 사용하는 방법에 대한 설명입니다. 설명과 함께 샘플 파일을 업로드 합니다. MainFrame Class Step 1: In the Mainframe Class override the initial dimensions of the default Window. Using the CREATESTRUCT we change the dimensions of the window to 400 x 400 BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs) { // TODO: Modify the Window class or styles here by modifying // the CREATESTRUCT cs cs.cx=400; cs.cy=400; return ..
[CODE 바로가기] 프로그램 중복 실행 방지코드 프로그램의 중복 실행을 막을 필요가 있는 프로그램은 뮤텍스를 이용하여 처리할 수 있다. App 클래스내의 InitInstance()함수내에 가장 첫라인에 다음 코드를 추가한다. HANDLE hMutexOneInstance = ::CreateMutex(NULL, TRUE, _T("")); if(hMutexOneInstance!=NULL && ::GetLastError() == ERROR_ALREADY_EXISTS) exit(1);
조이스틱 컨트롤 에뮬레이션 로봇을 수동으로 조종할 수 있는 방법은 많이 있다. PC를 사용한다면, 키보드, 마우스, 조이스틱등등... 이밖에도 블루투스같은 통신이나 무선랜을 이용하여 수동제어 하는 방법들이 있다. 실제 마우스로 조종을 하지만, 조이스틱과 같은 UI를 가진 조종 프로그램이 있다면 어떨까.. 실제로 많은 개발자들은 핵심적인 기능구현에 많은 시간을 투자한다. 사실 그게 맞다. 하지만 기능구현과 더불어 중요한것이 바로 GUI이다. 화려한 GUI를 요구하는 시스템은 분명 아닐것이라는 가정하에, GUI는 단순히 보여주는 그 이상의 기능을 해야한다. 로봇이나 컴퓨터가 사람에게 어떠한 정보를 전달 해 줄 수 있는 매개체가 무엇이겠는가... 사운드, 모니터뿐 아니겠는가... 최대한 사용자는 소프트웨어를 사용하기 쉬워야 하고, 복잡..
[CODE 바로가기] 리스트컨트롤(ListCtrl) Row Index 얻어오기 리스트컨트롤(Listctrl)의 Row의 index를 얻어오는 코드. 내가 선택한 줄이 몇번째 줄인가를 얻어와야 해당 라인의 각 컬럼에 속한 값들을 얻어올 수 있다. void CTestDlg::OnNMDblclkStatusLst(NMHDR *pNMHDR, LRESULT *pResult) { //LPNMITEMACTIVATE pNMItemActivate = reinterpret_cast(pNMHDR); // TODO: Add your control notification handler code here NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR; int itemindex = pNMListView->iItem; *pResult = 0; } 위 코드는 리스트컨트롤의 ..
한글의 종성에 따른 TTS 문장변화 외국도 그렇겠지만 본인이 보기에 우리나라에서 만든 엔터테인먼트로봇의 70%이상이 TTS를 채택하여 사용하고 있다. 로봇에서 TTS(Text To Speech)를 쓰는것은 상황에 따라 로봇이 음성으로 표현을 하기위한것이다. 뭐, TTS가 억양이나 말뜻을 강조하기 위한 엑센트에 약한것이 사실이기때문에, 예쁜 목소리를 가진 사람이 녹음하여 플레이하는 경우도 있다. 사실 로봇이 더욱더 사람같아 진다고 느끼는 사람이 있는 반면에, 사람처럼 생기지도 않은 로봇이 사람처럼 자연스러운 목소리를 낸다는 것에 더 부자연스러움을 느끼는 사람도 적지않다. 즉, 오히려 로봇은 로봇 다워야 한다는 사람도 많이 봤다. TTS와 더불어 음성인식도 많이 사용한다. 단어나 문장을 인식하여 적절한 대답을 찾아 TTS로 알려주는 것이 이제..