Windows 환경에서 Qt 5.7.0 빌드

Qt 4버전대만해도 4.8.6과같이 몇단계씩 꽤나 오랜기간동안 하위버전이 유지되었는데 요즘의 Qt 5는 몇달사이 5.6.1이였다가 뜬금없이 5.7.0으로 하위버전이 업데이트되었다. 대체로 5버전대는 한두번 업데이트 이후 하위버전이 올라가는거같다. 크롬과같이 빠른 변화와 버전업이 이루어지는 정책이 어느정도 Qt측에서도 이루어지고있는건가 싶기도하다.

이번 버전업에는 3D관련 업데이트가 주를 이루는거같으니 그다지 기능상에서의 변화는 없다고봐도 무방할거같다. 여담이지만 5.5버전에서는 frameless window 옵션이 추어진 창에서 HWND 형식의 핸들을 얻기위해 winId() 함수를 위젯에서 호출하게되면 그 이후로는 UI의 업데이트가 발생했을 때에도 화면이 업데이트 안되는 버그가 있었다. (5.6에서인가 버그가 해결되었다.)

직접 빌드하기 전 주의사항으로는 콘솔명령이 익숙하지 않거나 에디터 플러스나 울트라에디터를 사용하지 않는다면 빌드 안하고 홈페이지에서 이미 빌도된 바이너리를 받아서 설치하는게 더 낫다. 직접 빌드하는건 디버깅을 Qt Framework의 모듈 함수 내부까지 해야할 경우말고는 그냥 경험용으로 빌드 해보는것 밖에는 이유가 없다.

여담으로 5.6버전 이전엔 QSql의 ODBC 모듈에서 메모리 누수현상이 있었는데 당시 어디서 누수가 발생하는지 찾기위해 직접 빌드하여 며칠동안 헤맨덕에 원인을 찾고 패치를 재출하고 직접 수정하여 라이브러리를 사용한적이 있었다. 이런 상황이 아니라면 굳이 빌드해야 하는 이유는 없다.

참고로 WebView기능을 재공하는 WebEngine 모듈을 빌드하려면 8기가램 PC인 경우 빌드하길 추천한다. 자체적으로 병렬빌드를 수행하며 워낙 규모가 방대하여 컴파일할 때 파일들이 메모리에 캐싱되어야 느려지지않고, 링크를 할 때 메모리를 3기가 넘게 소모한다.

아래서부터는 과정 및 빌드 방법 Continue reading Windows 환경에서 Qt 5.7.0 빌드

Windows 10에 다시 추가된 Aero Glass 효과

약 1년 전 윈도우즈 블로그에 아래와 같은 글 하나가 등록되어있었다.

We’ve also heard loud in clear that many Windows Insiders want to see Aero Glass from Windows 7 make a comeback. We’ve been working out how to satisfy this request, and are trying some things out with this build to see how you like them. We’re running a little A/B test with this build. 50% of you will normal transparency on the Start menu and taskbar while the other 50% will see a blur effect on the Start menu and taskbar (like frosted glass). If Windows Insiders really like the blur effect, we will add it to more areas and even consider making it the default instead of standard transparency. Which one did you get? Send us feedback about it via the Windows Feedback app!

원문 글: https://blogs.windows.com/windowsexperience/2015/04/29/new-windows-10-insider-preview-build-10074-now-available/

어쩐지 어느 순간부터 단순 반투명이 아닌 시작 메뉴의 배경에 번짐효과가 은근슬적 적용되었다 싶었다.
windows 10 aero glass

무려 1년이 지난 지금도 MSDN에는 이러한 효과를 사용하기위한 내용은 없다. 컴백이라더니 왜 공개 안하는지는 모르겠는데… 그냥 예상되는거라면 너도나도 남용할거같아서? 그래도 능력자들이 리버스 엔지니어링을했는지 이것의 적용법을 WPF, Delphi XE버전으로 남겨진 글이 있다.

WPF: http://withinrafael.com/adding-the-aero-glass-blur-to-your-windows-10-apps/
Delphi: http://stackoverflow.com/questions/32724187/how-do-you-set-the-glass-blend-colour-on-windows-10

문제는 이게 C로 정의된걸 꼬박 하루동안 찾지못해 엉뚱한 삽질을 했다는거… 역시나 중국은 무섭게도 C언어로 함수 원형과 구조체들을 정리한것이 나왔다. (Microsoft에서 공개한 문서도 없는데 저런걸 어떻게 다 찾아내서 이름까지도 정하는건지 신기하다.)

C: https://git.oschina.net/ysc3839/codes/djcx0y3b9a5pmtrzgq6ki (여담이지만 코멘트로 달려있는 소스의 마지막 라인에 FreeLibrary(hUser); 한줄이 더 추가되어야 맞을것이다.)

처음엔 WPF 버전의 코드를 보고 C로 옮겼지만 왜인지 되어야하는데 안된다 싶었다. 저 코드를 찾기 전만해도 계속 #pragma pack(push, 1), #pragma pack(pop)을 쓰고있었고, 해당 구조체는 이러한 packing이 필요 없던것이였다(…). OS 레벨의 구조체는 packing이 일반적이라 당연히 필요한 줄 알았건만 이것이 하루 삽질하게 만들고, 그나마 다행인건 좀 더 완전하게 정의 된 C버전의 코드를 찾았다는 정도다.

암튼 현재 만들고있는 프로그램에서 정의하여 사용하는 구조체와 함수 원형은 아래와같다. Continue reading Windows 10에 다시 추가된 Aero Glass 효과

Boost + Visual Studio 환경에서 라이브러리 빌드

Boost 버전: 1.61.0
Visual Studio 버전: Community 2015

Boost는 헤더만 include하면 되는것이 기본이지만 아래와같은 라이브러리는 빌드해야한다.
Chrono, Context, Filesystem
GraphParallel, IOStreams
Locale, MPI, ProgramOptions
Python, Regex, Serialization
Signals, System, Thread, Timer, Wave

아래 라이브러리는 상황에 따라 빌드 필요.
DateTime, Graph, Math
Random, Test, Exception

참고: http://www.boost.org/doc/libs/1_61_0/more/getting_started/windows.html#header-only-libraries
다운로드: http://www.boost.org/users/download/

빌드 방법:

Continue reading Boost + Visual Studio 환경에서 라이브러리 빌드

마비노기 타이머 v5.3.3.83

마비노기 타이머의 새로운 버전을 공개합니다. 0.으로 시작 하던 버전을 약간 변경 하였으며 새부적으로 내부 버전을 따로 두어 가장 뒷자리로 두었습니다.

현재 타이머는 시작 하면 아래와 같이 최상단에 위치하는 창으로 시작됩니다.
사용자 삽입 이미지기존의 날씨와 메인창은 보기의 하위메뉴에 위치하며 날씨 및 등장표가 추가되었습니다.
사용자 삽입 이미지위와 같은 모습을 하고 있으며 원하는 날짜로 이동하여 이전 또는 다음 표를 보실 수 있습니다.
사용자 삽입 이미지위의 화면은 에린 정보 보기 창이며 아래 화면은 날씨 보기 창의 모습입니다.
사용자 삽입 이미지나머지 새부적인 수정 및 변경 될 사항들은 공지사항을 참고 하시면 되겠습니다.

5.3.3.83버전의 수정사항

  • 메인창 변경
  • 날씨 및 등장표 추가
  • 옵션 창 추가
  • 버전 표기법 변경

만약 프로그램이 실행 되지 않고 오류 메세지가 뜬다면 이곳, 또는 이곳에서 파일을 다운 받아 설치 하시면 해결됩니다.
마비 타이머 다운로드: MabiTimer_50303.exe
마비 타이머 SVN 주소: http://svn.iruis.net/QMabiTimer
WebSVN 주소: http://svn.iruis.net/listing.php?repname=QMabiTimer&path=%2F&sc=0

이상. 마비노기 타임즈에서 ‘[하프]iiasuraii’로 활동하는 엘프 유저입니다.
이번엔 졸려서 내용을 대강 적었네요 ㄷㄷ 역시나 부족한 기능이라든지 개선사항은 환영입니다. +_+

현재의 타이머 모습

이 글은 지금까지 타이머가 재작 된 모습을 보여드리는 글입니다.
지금것 아무런 소식 없이 이렇게 방치 되어 있는듯 하여… 떡밥 아닌 떡밥을 던집니다.

일단 프로그램 실행 화면입니다.
사용자 삽입 이미지보시다시피 달랑 메뉴 세개로 구성 된 실행 화면입니다.
사용자 삽입 이미지보기에는 기존 버전의 날씨 정보와 동일안 창이 나오는 날씨 정보, 그리고 에린 기본 정보가 이전 버전에서의 메인 창입니다. 여기에 추가 된 등장 및 시간표는 아래와 같습니다.
사용자 삽입 이미지간략하게 하루 동안의 날씨, 등장 표를 표시합니다.
옵션에는 프로그램의 간략한 설정이 들어가는데 아직 이 부분을 구성하는 중입니다. 과연 언제 정식으로 공개 될지 모르겠네요. 일단 이번주 내로 공개가 가능할것으로 보입니다. 혹시라도 기타 건의사항이 있다면 언제든지 환영입니다.!