Dynamic Link Library
동적 링크 라이브러리
링크 과정에서 라이브러리와 어떻게 연결되어야 한다는 정보만을 덧붙이게 되는 것.
링크는 프로그램이 실행되는 순간 이루어진다.
실행되는 프로그램의 수가 많고 그 안에 공통된 라이브러리 함수가 포함되어 있다면 -> 동적 링크 라이브러리를 사용
Coding > Compile > Linking > Binding
프로그래머가 코드 작성 (Coding) →
컴파일러가 컴파일 하여 기계어 코드 생성 (Compile) →
프로그램 내에서 사용한 라이브러리 함수들을 해당 라이브러리에서 뽑아와 실행 코드에 덧붙임
만약 둘 이상의 소스를 가지고 있을 때는 이것들을 연결 (Linking)
참조하는 루틴을 서로 연결하는 것 외에도 실행에 필요한 정보를 덧붙여 실제로 실행 가능한 코드를 생성 →
리소스를 덧붙여 최종적으로 실행 파일을 만들어 냄(Binding)
자료형 | C | VB |
---|---|---|
문자형 | char | Byte, String * 1 |
정수형 | int | Integer or Long |
긴 정수형 | long | Long |
실수형(단정도) | float | Single |
실수형(배정도) | double | Double |
문자열형 | char* | String |
포인터형 | 데이터형* | 없음 |
속성 | 설명 |
---|---|
이름(Name) | 변수에 부여된 이름 |
형(Type) | 변수의 데이터 형 |
값(Value) | 변수에 저장된 값 |
참조(Reference) | 변수가 위치한 메모리의 주소 |
범위(Limits) | 변수가 유효한 범위 |
호출 방법 | 설명 | 함수 선언 | 함수 호출 |
---|---|---|---|
이름에 의한 호출(Call by Name) | 이름을 매개로 함수를 호출한다. | TestFunc p := 10 혹은 Call TestFunc(p := 10) | |
값에 의한 호출(Call by Value) 선택적으로 사용 | 값을 매개로 함수를 호출한다. | function TestFunc( ByVal p As Integer) As Integer | TestFunc 10 혹은 Call TestFunc(10) |
참조에 의한 호출(Call by Reference) VB의 기본 주소(포인터의 값)를 넘겨주는 호출방식 | 주소값을 매개로 함수를 호출한다. | function TestFunc(ByRef p As Integer) As Integer 혹은 function TestFunc(p As Integer) As Integer | " |
C 데이터형 | VB선언 |
---|---|
ATOM | ByVal 변수명 As Integer |
BOOL | ByVal 변수명 As Long |
BYTE | ByVal 변수명 As Byte |
CHAR | ByVal 변수명 As Byte |
COLORREF | ByVal 변수명 As Long |
DWORD | ByVal 변수명 As Long |
HWND, HDC, HMENU | ByVal 변수명 As Long |
INT, UINT | ByVal 변수명 As Long |
LONG | ByVal 변수명 As Long |
LPARAM | ByVal 변수명 As Long |
LPDWORD | 변수명 As Long |
LPINT, LPUINT | 변수명 As Long |
LPRECT | 변수명 As type 사용자 정의 형식의 모든 변수 |
LPSTR, LPCSTR | ByVal 변수명 As String |
LPVOID | 변수명 As Any 모든 변수(문자열은 제외) |
LPWORD | 변수명 As Integer |
LRESULT | ByVal 변수명 As Long |
NULL | As Any 또는 ByVal 0& |
SHORT | ByVal 변수명 As Integer |
VOID | Sub procedure, 응용 불가능 |
WORD | ByVal 변수명 As Integer |
WPARAM | ByVal 변수명 As Long |
프로그램이 실행된 디렉토리 → 윈도우 system → PATH로 지정된 디렉토리들