윈도우 운영체제 자체에서 제공되는 프로시저

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-