DirectMusic 프로젝트의 생성
DirectMusic 프로젝트의 생성
프로젝트에는, DirectMusic 의 퍼포먼스 계층의 선언을 포함한 Dmusici.h 헤더 파일을 인클루드 할 필요가 있다. 이 파일을 인클루드 하면, 3 개의 중요한 헤더도 인클루드 된다.
- Dmusicc.h:DirectMusic 의 코어 계층의 선언
- Dmerr.h:DirectMusic 의 반환값
- Dsound.h:DirectSound API
이하의 헤더는, 대부분의 애플리케이션에서는 필요없다.
- Dmusicf.h:파일의 구조와 정의. 이 헤더 파일은, 파일을 직접 조작해, DirectMusic 에 짜넣어지고 있는 로더에 전혀 의존하지 않는, 뮤직 authoring tool등의 애플리케이션에서만 필요하다.
- Dmusics.h:IDirectMusicSynth 인터페이스와 IDirectMusicSynthSink 인터페이스의 선언. 이러한 인터페이스는, 신디사이저와 신디사이저 싱크를 생성 하기 위해서 사용된다.
- Dmusbuff.h:DMUS_EVENTHEADER 구조체의 선언. 신디사이저에 대한 이벤트를 직접 순서화하는 애플리케이션만이 사용한다.
- Dmksctrl.h:포트 프로퍼티의 설정으로 사용되는 IKsControl 인터페이스의 선언. Ksproxy.h 및 Ks.h 를 인클루드 하고 있는 경우, 이 파일은 필요없다.
- Dmplugin.h:IDirectMusicTool8 인터페이스와 IDirectMusicTrack8 인터페이스의 선언. 이러한 인터페이스는, 특수한 메시지 처리 툴이나 트랙 타입을 필요로 하는 고도의 애플리케이션용의 애드 온(add-on)로 처리 된다. 대부분의 애플리케이션은, DirectMusic API 의 이 부분을 사용하지 않는다.
또, 애플리케이션이 DirectMusic 로 사용되는 GUID 에 액세스 할 수 있도록(듯이) 주의 해야 한다도 필요하다. 다른 모든 프리프로세서 지시문의 전으로 INITGUID 를 정의하는지, 또는 Dxguid.lib 에 링크한다.
DirectMusic 는, Windows 32 비트 operating system의 multi-thread 기능을 사용한다. multi-thread를 이용하는 것에 의해, 애플리케이션이 다른 태스크를 실행하고 있는 동안에, DirectX 는 백그라운드에서 음악의 생성, 처리, 합성을 실시할 수가 있다. multi-thread를 염두에 두어, 프로젝트를 개발할 필요가 있다. 적어도, 적절한 라이브러리와 링크할 필요가 있다.