윈도우 운영체제 자체에서 제공되는 프로시저
Download
Report
Transcript 윈도우 운영체제 자체에서 제공되는 프로시저
Chapter 19
API(Application Programming Interface)
-1-
API DLL 프로시저란? (1/2)
VB에서 프로그램을 작성하다 보면, 컨트롤에서 지원되지 않
는 특수한 작업을 필요로 할 때가 있음
기억장소 접근, 프로세스 처리, 그래픽, 사운드, 동영상 작업 등
VB는 속도측면 보다, 얼마나 개발이 수월한지, 시간투자에
비해서 Output이 얼마나 멋지게 나오는지, 얼마나 안정적으
로 작업을 수행되는가를 보다 많이 고려한 언어 임
단점
사용하기가 어렵다
프로시저의 역할 및 프로시저가 요구하는 매개변수의 종류와 숫자, 사용
방법 등 어려운 점이 많음
VB에서 지금까지 제공된 안정성은 없다고 보아야 함
예상치 못한 시스템 다운 현상이 발생할 수 있음
-2-
API DLL 프로시저란? (2/2)
윈도우 운영체제 자체에서 제공되는 프로시저
MS에서는 개발자가 application을 쉽게 작성할 수 있도록 각종 프로시
저를 만들어 놓았으며, 이것이 API DLL 프로시저임
윈도우에서 제공하는 API
User32.DLL
Kernel32.DLL
프로세스, 메모리, 통신포트, 파일 핸들 등을 관리
GDI32.DLL
원도우, 다이얼로그, 메뉴, 커서 등과 같은 사용자 인터페이스 개체를 관리
프린터나 화면에 그래픽처리(펜, 브러시, 비트맵 등)를 관리
기타 업체에서 제공하는 API
개발자 스스로가 작성한 API
링크작업이 실행 시간에 동적으로 이뤄짐
프로그램 크기와 메모리 낭비를 최소화 해줌
-3-
API 사용하기 (1/4)
프로시저가 값을 반환하는 경우
Declare Function 프로시저명 Lib “libname” [Alias “alias”] _
[([[ByVal] variable [As type] [,[ByVal] variable [As type]] … ])] As Type
대부분의 API는 C언어로 작성되었기 때문에, VB와 C언어의
규칙이 충돌을 일으킬 경우 C언어 규칙을 따라야 함
DLL 프로시저 선언 – Declare문
API는 VB내에서 정의된 프로시저가 아님
명시적인 선언을 통해 API 위치정보, 인수의 타입, 반환 값 타입, 등
몇 가지 정보를 VB에게 알려줘야 함
-4-
API 사용하기 (2/4)
문자열과 폼의 핸들을 전달 받아 폼의 캡션을 해당 문자열로 바꾸어 줌
Private Declare Function SetWindowText Lib “user32” _
Alias “SetWindowTextA” (ByVal hwnd As Long, _
Byval lpString As String) As Long
SetWindowText : 호출하고자 하는 프로시저 이름
Lib “user32” : SetWindowText가 보관되어 있는 원본 DLL의 위치
Alias “SetWindowTextA” : C언어로 작성될 당시의 원래 이름
C언어와 VB의 프로시저 이름 작성법이 달라 충돌이 발생됨
원래의 이름 대신에 application 에서 정의한 새로운 이름(SetWindowText)으
로 호출하겠다는 의미
-5-
API 사용하기 (3/4)
Option Explicit
Private Declare Function SetWindowText Lib "user32" _
Alias "SetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String) As Long
Private Sub Command1_Click()
Dim k As Integer
Dim strCaption As String
strCaption = InputBox("폼의 제목을 입력하세요")
k = SetWindowText(Me.hwnd, strCaption)
End Sub
-6-
API 사용하기 (4/4)
수행 결과
-7-
API 텍스트 뷰어 이용 (1/11)
API 텍스트 뷰어 실행
시작>프로그램>Microsoft Visual Studioc 6.0
Microsoft Visual Studioc 6.0 도구들
API 텍스트 뷰어
1. 클릭
-8-
API 텍스트 뷰어 이용 (2/11)
API 텍스트 뷰어 실행 화면
-9-
API 텍스트 뷰어 이용 (3/11)
API 텍스트 뷰어
[파일 > 텍스트 파일 로드]
2. 클릭
3. 클릭
4. 클릭
-10-
API 텍스트 뷰어 이용 (4/11)
API 텍스트 뷰어
sndPlaySound 함수 추가하기
5. “snd” 입력
6. 클릭
7. 클릭
8. 클릭
9. sndPlaySound 함수 선언문
-11-
API 텍스트 뷰어 이용 (5/11)
API 텍스트 뷰어
상수 추가하기
SND_ASYNC = &H1
SND_PURGE = &H40
10. 상수 선택
11. “snd” 입력
12. 클릭
•SND_ASYNC = &H1
•SND_PURGE = &H40
13. 클릭
14. 상수 입력 확인
15. 클릭
-12-
API 텍스트 뷰어 이용 (6/11)
Code 작성
일반 선언부에 함수 및 상수, 변수 선언
API 텍스트 뷰어에서 클립보드로 복사한 내용을 붙여넣기 한다
16. Ctrl+V (API 텍스트 뷰어에서 클립보드로 복사한 내용 붙여넣기)
17. Code 작성
-13-
API 텍스트 뷰어 이용 (7/11)
Code 작성
[ 웨이브 파일] 버튼 Click 이벤트 프로시저
열기 대화상자에서 선택한 Wave파일명을 strFileName 변수에 저장하고
Label에 나타낸다.
18. Code 작성
-14-
API 텍스트 뷰어 이용 (8/11)
Code 작성
[ Play ] 버튼 Click 이벤트 프로시저
sndPlaySound 함수를 호출하여 Wave 파일을 재생한다.
strFileName: 재생할 Wave 파일
SND_ASYNC: 재생방법
19. Code 작성
-15-
API 텍스트 뷰어 이용 (9/11)
Code 작성
[ 종료(X)] 버튼 Click 이벤트 프로시저
20. Code 작성
-16-
API 텍스트 뷰어 이용 (10/11)
실행 결과
[웨이브 파일] 버튼
21. 클릭
22. Wave 파일 클릭
23. 클릭
-17-
API 텍스트 뷰어 이용 (11/11)
30. 클릭
-18-