본문 바로가기

분류 전체보기277

바이트 순서 변환 함수 https://msdn.microsoft.com/ko-kr/library/cc468322(v=vs.71).aspx Windows 소켓 바이트 순서 변환 함수함수용도ntohs16비트 수량을 네트워크 바이트 순서에서 호스트 바이트 순서로(big-Endian에서 little-Endian으로) 변환합니다.ntohl32비트 수량을 네트워크 바이트 순서에서 호스트 바이트 순서로(big-Endian에서 little-Endian으로) 변환합니다.htons16비트 수량을 호스트 바이트 순서에서 네트워크 바이트 순서로(little-Endian에서 big-Endian으로) 변환합니다.htonl32비트 수량을 호스트 바이트 순서에서 네트워크 바이트 순서로(little-Endian에서 big-Endian으로) 변환합니다.또한 .. 2016. 3. 16.
Error C2039: 'Enable3dControls' : is not a member of 'CWinApp' Visual Studio 2005를 사용하고 있는데 Debug 모드에서는 정상적으로 빌드가 되는데Release 모드로 하면 빌드 에러가 발생하는 문제입니다.에러 메시지는 아래와 같습니다.Error C2039: 'Enable3dControls' : is not a member of 'CWinApp'구글로 검색을 해 본 결과 아래와 bug라고 합니다.MSDN Managed Newsgroups에서 관련 내용은 bug이기 때문에 삭제를 하면 된다고 합니다. Yes, this is due to a bug. You should be able to comment out the Enable3dControl text lines in afxwin2.inl to get rid of the problem. They are n.. 2016. 3. 10.
MSXML2에서 indentation 처리 방법 https://msdn.microsoft.com/ko-kr/library/ms757021(v=vs.85).aspx 정말 당황스럽다. 어떻게 하는지 정말 알수가 없어서 찾아보니까 이런 예제가 있다. 다른 방법이 있는지 모르겠다. 우선 아래 방법으로 임시 처리를 한다.// Create an element to hold three empty subelements. pe = pXMLDom->createElement(L"node3");// Add newline +tab for indentation. pRoot->appendChild(pXMLDom->createTextNode(L"\n\t")); 직접 \n\t을 넣어 맞춰야 한다. 이런 방법밖에 없나? 2016. 3. 7.
MSXML2 사용중 xmlns="" 자동 추가되는 문제 해결 방법 MSXML2를 이용해서 XML을 처리하는데 문제가 발생해서 자료를 찾아보았다. appendChild를 하면 xmlns=""이 자동으로 들어가는 문제였다. MFC를 개발 경력 10년이 넘어서 처음으로 하는데 너무 불편한 것이 많다. 아래 글과 같이 XML Namespace를 처리하는 방식 때문인데 Dom의 namespace와 일치시켜면 자동으로 들어가지 않는다. 맨처음 DOM의 namespaceURI를 얻어와서 처리를 해 봤는데 NULL이 들어있다. 분면 XML에는 xmlns가 있는데도 말이다. 왜일까? 찾아봐야 할 것이 너무 많다. 직접 Root의 Attribute를 파싱해서 xmlns를 얻어오고 createNode를 이용해서 namespace를 직접 넣어주면 문제없이 잘 처리가 된다. 자신이 사용하는 .. 2016. 3. 7.
Creator Full mode 닫는 단축키 Creator Full Screen mode 닫는 단축키이다.shortcut (CTRL+SHIFT+F11) 2015. 12. 31.
QT PostMessage 대체 사용 방법 고민 기존 프로그램에서 메뉴를 닫을 때(FormClose())가 진행 되면 현재 Dialog를 Delete 할 수 없기 때문에 PostMessage를 이용해서 MainMenuForm에서 ExitForm() 함수가 작동하도록 해서 Event() 흐름이 끝나고 사용한 Dialog(Form)을 삭제하게 했습니다.그러나 현재 QtTex3D에서는 Dilaog의 X버튼을 눌러 닫을 때 CloseEvent()함수를 오버로딩해서 사용하고 있는데 위의 내용과 마찬가지로 Dialog를 삭제할 수는 없습니다. MainMenuDialog에서 이런 문제점이 있었는데 이 때 QTimer::singleShot(50, mainMenuDialog, SLOT(exitDialog())); 를 이용하면 될 것 같습니다.QTimer::single.. 2015. 12. 30.
Transition from Qt 4.x to Qt5 (toAscii() to toLatin1()) https://wiki.qt.io/Transition_from_Qt_4.x_to_Qt5#toAscii.28.29_and_fromAscii.28.29_Methods_are_deprecated Qt4 버전까진 toAscii() 함수를 사용했지만 Qt5버전부터 toLatin1()으로 함수가 변경되었다. 마이그레이션을 할 때 이부분을 수정해야 한다. 기타 다른 함수들과 사용방법이 변경되었으니 아래 내용을 참고하기 바란다. The transition from Qt 4.x to Qt 5 is not expected to be significant. However, the "modularization" of the Qt code base requires some amount of changes to project c.. 2015. 12. 24.
Visual Studio "he optimize pragma" 처리 The optimize pragma라는 것이 있군요. 이것을 이용하면 특정 함수 부분에 optimize을 사용하지 않도록 가능합니다. 현재 수정 및 테스트 중~ 잘 해결되었으면 좋겠네요. https://msdn.microsoft.com/en-us/library/chh3fb0k.aspx 2015. 12. 22.
eventFilter(QObject* object, QEvent* event) 함수 사용하기 각 Widget의 Event를 처리하기 위해서 subclass를 이용해서 class를 만들어 사용하는 것 보다 eventFilter(QObject* object, QEvent* event)함수를 이용하는 것이 개발을 빨리 진행할 수 있다.Dialog에 Widget을 배치하고 Dialog class의 생성자에 필요한 Widget별로 installEventFilter()함수를 설정한다.ex) QLineEdit Widget을 사용하는데 Key Event를 확인하고 싶을 경우에는 아래와 같이 생성장에 설정을 한다. QLineEdit *ed = new QLineEdit(this); ed->installEventFilter(this); bool Dialog::eventFilter(QObject* object, QE.. 2015. 8. 21.