1월, 2017의 게시물 표시

OS/2 announce: Various programs and libraries for OS/2 released

Various programs and libraries for OS/2 have been released. 다양한 OS/2 용 프로그램과 라이브러리가 공개되었습니다. They can be downloaded from : 다음 링크를 클릭하면 받을 수 있습니다: GNU Bison v3.0.4   Coreutils v8.26   GNU Diffutils v3.5   FAAC v1.28   FAAD2 v2.7.0   Gawk v4.1.4   git v2.11.0   gmp v6.1.2   GnuTLS v3.5.8   gperf v3.1   help2man v1.47.4   itstool v2.0.2   lame v3.99.5-r3   libdvdnav v5.0.3   libdvdread v5.0.3   libgcrypt v1.7.5   libgpg-error v1.26   libogg v1.3.2   libpng v1.6.28   libvorbis v1.3.5   libvpx v1.6.1   GNU M4 v1.4.18   GNU Make v3.81-k1   pdksh v5.2.14-bin-7   perl v5.16.0-k1   sed v4.3   texinfo v6.3   zlib v1.2.11 Enjoy Warping !!! Korean OS/2 User Community : http://www.ecomstation.co.kr

OS/2 codes: compiler keywords exporting a symbol from a DLL without .def

The most basic way to export a symbol from a DLL is to list entries below EXPORTS keyword in .DEF file. However, this works for Visual Age C++(VAC) and gcc, but not for Open Watcom C/C++(OW). OW uses its own linker script, .lnk file, and EXPORT keyword not EXPORTS. Because of this, if you want to write DLLs buildable by the above three compilers, you should maintain at least two files of .def for VAC and gcc, and .lnk for OW. This increases the complexity of maintence. As well as, whenever symbols are exported newly, they should be added to .def and .lnk themselves. This is very annoying. Instead, it would be very convenient if exporting symbols in the source itself. All three compilers provide keywords for this. 1. Visual Age C++ VAC provides _Export keyword and #pragma export directive. Especially, _Export may be used in in-line style. For example, void _Export dll_entry( void ); will export dll_entry() as a proper name according to its calling convention and linkage ...

Qt 로 만들자: libvlc 를 이용한 간단한 동영상 재생기 LVPlayer

이미지
0. 들어가면서... 지난 번에 MPlayer 의 slave 모드를 이용해서 MPlayer 의 front-end 를 만드는 방법을 살펴보았다. 이번에는 오픈 소스 동영상 재생기 중에서 MPlayer 만큼이나 유명한 VLC Media Player 에 대해 알아보고자 한다. VLC Media Player 는 MPlayer 와 달리 라이브러리 형태로 모든 기능을 제공한다. 이를 libvlc 또는 VLC SDK 라고 한다. 이론적으로 libvlc 를 이용하면 VLC Media Player 와 동등한 기능을 가진 동영상 재생기를 만들 수 있다. 이 프로젝트에서는 지난 MPGui 프로젝트에서처럼 아주 간단한 기능만 구현해보도록 하자. 그리고 MPGui 처럼 Windows 7 을 기본 으로 하며, 사용된 VLC Media Player 버전은 2.2.4 이다. 그럼에도 불구하고, 다른 OS 나 플랫폼에서도 약간의 코드만 수정하면 충분히 작동할 것이다. 0.1. 사전 준비 libvlc 는 VLC Media Player 의 설치 프로그램에는 포함되어 있지 않다. 그렇다면 VLC Media Player 의 소스를 받아서 빌드해야 하느냐? 물론 그래도 되지만, 꼭 그럴 필요는 없다. 7-zip 배포본에는 sdk 디렉토리에 libvlc 가 포함되어 있다. 따라서 설치 프로그램이 아니라 7-zip 배포본 을 받으면 된다. 0.1.1. libvlc( VLC SDK ) 설치하기 7-zip 배포본은 다음 사이트에서 받을 수 있다. http://www.videolan.org/vlc/download-windows.html 이 때 [Download VLC] 를 누르지 말고 옆에 있는 아래쪽 화살표(🔻) 를 누르면 여러가지 형태의 배포본이 나온다. 그 중에서 [7-zip package] 를 선택하면 된다. 7-zip package 를 받았으면, 원하는 디렉토리에 풀면 된다. 0.1.2. PATH 환경 변수 바꾸기 VLC Media Player 는...

Qt 로 만들자: 간단한 MPlayer front-end MPGui

이미지
0. 들어가면서... 미루고 미루다가 이제서야 글을 쓴다. Qt 에 쓸 시간이 왜 이리도 안나는지. 이번에는 MPlayer front-end 이다. MPlayer 는 오픈소스 동영상 재생기 중에서 가장 유명한 재생기 중의 하나이다. 하지만, 명령행에서 실행되기 때문에 익숙하지 않으면 꽤 불편하다. 물론 GTK GUI 가 제공되기는 하지만, 많이 쓰이지는 않는듯 하다. 이보다는 오히려 SMPlayer 라는 front-end 가 더 유명하다. SMPlayer 라는 front-end 가 생길 수 있었던 이유는 MPlayer 에서 slave 모드라는 독특한 기능을 제공하기 때문이다. slave 모드는 MPlayer 가 독립적으로 실행되는 것이 아니라 다른 프로그램의 back-end 로 실행되는 것이다. 따라서 MPlayer 의 front-end 에서 MPlayer 의 다양한 기능을 조절할 수 있다. MPlayer 의 slave 모드를 이용해서 어떻게 MPlayer front-end 를 만들 수 있는지 간단히 알아보도록 하자. 이 과정에서 프로그램의 실행과 파이프 처리에 대해서 알 수 있을 것이다. 1. 요구사항 동영상을 Qt 창에서 재생한다 탐색을 지원한다 재생/정지를 지원한다 일시정지를 지원한다 위 기능들을 구현할 것이다. 다만, Windows 환경만을 고려한다. 다른 OS/Platform 에서도 작동할 수 있지만, OS/Platform 에 따라 추가 코드가 필요할 수 있다. Windows 용 MPlayer 실행파일은 다음 사이트에서 구한 것을 사용했다. http://mplayerwin.sourceforge.net/downloads.html 2. 코드 분석 2.1. 프로젝트 작성 프로젝트 이름: mpgui 메인 클래스 이름: MPGui 메인 클래스 유형: QMainWindow 2.2. 헤더 분석(mpgui.h) 2.2.1 헤더 파일 목록 Colored By Color Scripter ™ ...