//C++Builder 6.0
//이런 것... 거의 할 필요가 없는데... 사운드디바이스가 다수 있을 경우
//필요하겠지요. 이 새벽에 하고 있는 일이라... VC++ 소스 있는 것 옮겨 보았습니다.
//별것 아닌 것인데... 개고생함.......
//---------------------------------------------------------------------------
#include <vcl.h>
#include <mmsystem.h> // <dsound.h> 보다 앞에 append
#include <dsound.h> // <------- append
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
//dsound.lib 이것을 찾아 프로젝트에 붙이는 것이 제일 간단함...
//오늘은 그냥 나도 폼나게 #pragma link로 걸어보자 하다가 개고생... ㅋㅋㅋ
//#pragma link "psdk/dsound.lib" 이렇게 넣으면 안됨, 이런 것은 당연히 되어야 하는 것 아닌가???
//이것에 대한 상세한 설명은 김태선님의
//http://kylix.borlandforum.com/impboard/impboard.dll?action=read&db=bcb_tip&no=866 참고하세요...
//경로 있는 것 Link 걸어줄 때는 절대 경로로....
#pragma link "c:/progra~1/borland/cbuilder6/lib/psdk/dsound.lib" //<------- append
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
static BOOL CALLBACK enum_sound_callback(const GUID* guid, const TCHAR* description, const TCHAR* module, HWND list)
{
int idx = SendMessage( list, CB_ADDSTRING, 0, (long)description );
SendMessage( list, CB_SETITEMDATA, idx, (long)guid );
return 1;
}
void __fastcall TForm1::Button1Click(TObject *Sender)
{
if( ComboBox1->Items->Count )
{
ComboBox1->Clear();
}
DirectSoundEnumerate((LPDSENUMCALLBACK)enum_sound_callback, (void*)ComboBox1->Handle );
if( ComboBox1->Items->Count )
{
ComboBox1->ItemIndex = 0;
}
}
//---------------------------------------------------------------------------
부산에서 월천 올렸습니다.
|