강좌,팁

허창원 *.94.119.73

이제부터는 Win32 API 함수를 추가하는 과정입니다.

11. Compiler Option 수정
Project window의 Options-Compiler Defines메뉴를 선택하여, 그림 10.16과 같이 수정합니다.

그림 10.16 Compiler Defines 옵션

원래는 /DWIN32... 로 나가는데, 앞에서 두 번째 문자인 D를 제거합니다. 그리고OK버튼을 누릅니다.

 

12. windows.h 헤더파일 include
Win32 API 함수를 이용할 소스 파일의상단에 windows.h 헤더파일을 include 합니다. 여기서는 L010_Sound.c 파일이 되겠습니다.그림 10.17에 표시하였습니다.

그림 10.17 windows.h 헤더파일 추가

통합 헤더 파일에 넣지 않은 이유는 굳이 모든 소스 코드에서 덩치 큰 windows.h를포함할 필요가 없기 때문입니다. API 함수가 이용될 소스 파일에만 추가합니다.

 

13. Win32 API 함수 사용
여기서 이용할 API 함수는 sndPlaySound()함수입니다. WAV 파일을 불러와서 Play 할 것이므로, windows(혹은 WinNT) 폴더 아래를검색하여 "기본음(꿈의 소리).WAV" 파일을 복사해 옵니다. 현금자동지급기의버튼 소리와 아주 유사한 소리입니다. 아마 같은 것일지도 모릅니다.
파일 이름이마음에 안들면 적절한 이름으로 수정하셔도 좋습니다. 여기서는 파일명도 바꿔볼까요?L010_Sound.wav로 말입니다. ㅎㅎ

다른 파일로도 쉽게 변경할 수 있도록 매크로 상수로 아래와 같이 선언하는 것도좋은 방법이죠? L010_Sound.c의 상단에 그림 10.18과 같이 매크로 상수를 선언합니다.

그림 10.18 사운드 파일명 매크로 상수

그리고 버튼 콜백 함수의 switch 문의 EVENT_COMMIT 내에 sndPlaySound() 함수를그림 10.19의 예와 같이 추가합니다. 정정 버튼, Back Space 버튼, 그리고 확인 버튼등 모두 이렇게 넣습니다.

그림 10.19 sndPlaySound() 함수의 첨가

 

14. 해당 API 함수에 대한 Import Library를 Project에 추가
마지막으로sndPlaySound() 함수가 있는 DLL에 대한 Import Library를 Project에 추가해야합니다.이 Import Library를 어떻게 알 수 있느냐구요?

Help를 이용해보세요. 저는 SDK 도움말을 설치하지 않았었는지, CVI 도움말에는잘 안나오는 것 같네요. 그림 10.20에 보는 바와 같이요.

그림 10.20 CVI의 도움말

그래서 MSDN 도움말을 이용했습니다. 그림 10.21을 보세요.

그림 10.21 MSDN 도움말

위의 Import Library는 어디 있느냐구요?
cvisdklib에 있을 겁니다. 즉,CVI가 설치된 디렉토리 밑에 있습니다. 그 winmm.lib를 복사해 와서 Project에추가합니다.

그리고 컴파일하고, 실행파일을 만들어 실행해 봅니다.

 

15. 실행
버튼을 누를 때마다 현금자동지급기(CD기)에서 들었던 소리가경쾌하게 들리는군요. 어느 은행 CD기일까요?
... 은행 광고는 하지 않겠습니다.

최종 실행 화면을 그림 10.22에 보였습니다. 소리를 들려드릴 수가 없어 안타깝군요.
직접 프로그램을 작성하시면서 따라오신 분들은 지금 듣고 있죠? 후후

그림 10.22 최종 실행화면(버튼을 누를 때마다 소리가 남)

 

연습문제는 따로 생각해보지 못했습니다. 사운드 함수를 여러분의 프로그램에적용해 보도록 하구요, 좀더 탐구심이 있으신 분은 다른 API 함수도 이용해 보세요.그런데, API 함수 중에 User Interface와 관련된 함수는 이용할 수 없겠죠? 왜냐하면CVI는 별도의 User Interface 방법을 이용하기 때문이죠!

--------------------------------------------------------------------------------------------------

겨우 또 한 강좌를 마쳤습니다. 따라하기 강좌는 하나의 프로그램을 완성해야하므로분량이 많은 편이군요. 그래서 부담스럽기도 하지만, 초보자 분들께는 이런 방식이더 유익할 겁니다.

오늘 강좌까지 앞에서부터 차례로 따라 오신 분들은 이젠 웬만한 수준에 올랐으리라생각됩니다. 앞으로는 미주알 고주알식의 설명이 차츰 줄어갈 것으로 예상됩니다.

오늘도 하나님의 사랑에 감사를 드립니다.

극동테크(www.kdtechno.com) 허창원


허창원

2004.07.13 16:36:21
*.218.140.126

그림 10.16은
CVI 7에서 프로젝트 창의 Options-Build Options-Compiler Defines난입니다.
List of Articles
번호 제목 글쓴이 날짜 조회 수
36 [강좌:014] 따라하기 9. 터치스크린에서 숫자 입력하기 (2) 허창원 2003-01-15 12962
35 [강좌:014] 따라하기 9. 터치스크린에서 숫자 입력하기 (1) 허창원 2003-01-15 14488
34 [강좌:013] 샘플 분석 2. Table 컨트롤 이용하기(colview) (2) [1] 허창원 2003-01-04 12785
33 [강좌:013] 샘플 분석 2. Table 컨트롤 이용하기(colview) (1) 허창원 2003-01-04 27274
32 [퍼온칼럼] 전병선 컬럼-프로그래머의 자세 허창원 2002-12-21 11659
31 [야리팁001]이거..블럭모드 지정..야리만 아는 팁(?)인가요? 야리싸내 2002-12-20 14388
30 [팁:002] panel을 Modal dialog box로 띄우기 [3] 허창원 2002-12-12 20175
29 RemovePopup()과 DiscardPanel()의 차이 허창원 2002-12-12 15477
28 Re: RemovePopup()과 DiscardPanel()의 차이 야리싸내 2002-12-13 13255
27 [강좌:012] 샘플 분석 1. 한 그래프에서 2개의 Y축 이용하기(2yaxis) [1] 허창원 2002-11-26 16441
26 [강좌:011] 따라하기 8. UI는 CVI로, 코딩은 VC++로 하기 [4] 허창원 2002-11-21 20719
» [강좌:010] 따라하기 7. CVI에서 Win32 API 함수 이용하기:사운드(2) [1] 허창원 2002-10-30 17543
24 [강좌:010] 따라하기 7. CVI에서 Win32 API 함수 이용하기:사운드(1) [3] 허창원 2002-10-30 21911
23 [강좌:009] 따라하기 6. 데이터 뷰어2 프로그램 제작 (4) 허창원 2002-10-09 16251
22 [강좌:009] 추가 보충설명 허창원 2003-02-14 12704
21 [강좌:009] 따라하기 6. 데이터 뷰어2 프로그램 제작 (3) [1] 허창원 2002-10-09 15527
20 [강좌:009] 따라하기 6. 데이터 뷰어2 프로그램 제작 (2) 허창원 2002-10-09 15682
19 [강좌:009] 따라하기 6. 데이터 뷰어2 프로그램 제작 (1) 허창원 2002-10-09 18386
18 [강좌:008] 따라하기 5. 데이터 뷰어(그래프) 프로그램 제작 (2) [1] 허창원 2002-09-01 23730
17 [강좌:008] 따라하기 5. 데이터 뷰어(그래프) 프로그램 제작 (1) (1차수정) [3] 허창원 2002-09-01 35872