출처 : http://luckyyowu.tistory.com/9



'VB' 카테고리의 다른 글

VB6 프로시저 (procedure)  (0) 2018.06.05
ByRef / ByVal  (0) 2018.05.24
VB6 iif  (0) 2018.05.14
Visual Basic6 (VB6)에서 마우스 휠 사용하기  (0) 2018.05.02
VB6 Unload / Hide / Show(modal / modeless) 폼 명령어  (0) 2018.04.30
블로그 이미지

벵거빠돌이

,

VB6 프로시저 (procedure)

VB 2018. 6. 5. 14:19

프로시저란

반복되는 작업을 할 경우 필요할 때마다 호출하여 사용할 수 있도록 한것. '모듈'이라고도 부른다. 


특징

각 프로시저 내에서 처리되는 내용은 다른 프로시저에 영향을 끼치지않는다. 

기능별로 작성하여 오류찾기 쉽다. 

이미 작성된 프로시저는 언제든지 사용 가능하다. 


종류 

특징 

 사용자 정의 프로시저

서브 프로시저

(Sub Procedure) 

 스크립트를 모듈화 하여 실행하도록함. 사용자가 생성 가능하고, 프로시저 안에서 밖으로 반환할 결과 값이 없을 때 사용. 

함수 프로시저

(Function Procedure) 

 스크립트를 모듈화하여 실행하도록 한다는 점에서는 서브 프로시저와 비슷. 사용자가 생성 가능하여, 프로시저 안에서 밖으로 반환할 결과 값이 있을 때 사용. 

프로퍼티 프로시저

(Property Procedure) 

 사용자가 생성 가능하며, 프로시저 안에서 밖으로 반환할 결과 값이 있을 때 사용. 또한 개체에 값을 설정할 수도 있다. 

 내장 함수

 언어 개발자들이 미리 만들어 제공. 

이벤트 프로시저

 이벤트 발생 시에 자동으로 발생하는 프로시저로, 사용자가 임의로 생성할 수 없으나, 이벤트 프로시저의 내부 코드는 사용자가 생성가능. 폼과 컨트롤에 종속적


인수 전달방식

Call by Value : 프로시저 밖에 있는 변수를 프로시저 안으로 직접 전달하여 변수값 변화가능. 

Call by Reference : 프로시저 안에서 변화된 값은 밖의 변수에 영향을 미친다. 





서브프로시저는 호출시 Call 생략가능. 

Call 사용시, 매개변수 앞뒤 괄호는 꼭 써줘야한다. 

Call 사용하지 않을시, 매개변수 앞뒤 괄호는 쓰면 안된다. 






프로퍼티 프로시저 형식

Get : 데이터의 값을 ㄷ이터 형식에 맞춰서 변환가능. 

Let : 프로퍼티 프로시저 안으로 데이터 전달한다. 


'VB' 카테고리의 다른 글

VB6 Call by value / Call by reference  (0) 2018.06.05
ByRef / ByVal  (0) 2018.05.24
VB6 iif  (0) 2018.05.14
Visual Basic6 (VB6)에서 마우스 휠 사용하기  (0) 2018.05.02
VB6 Unload / Hide / Show(modal / modeless) 폼 명령어  (0) 2018.04.30
블로그 이미지

벵거빠돌이

,

ByRef / ByVal

VB 2018. 5. 24. 12:50

By Reference / By Value

프로시저 작성 시 인수를 기입할 때 다음과 같이 입력하는 것이 일반적하지만 사실 인수의 이름 앞에는 'ByRef'가 생략되어있습니다. 


한줄로 나타내면 

ByVal (인수의 값 건네기) : 인수 값의 복사를 건넵니다.

ByRef (인수의 참조 건네기) : 인수 값을 직접 건네는 것이 아니라, 인수가 저장된 메모리 어드레스를 나타내는 지표(포인터)를 건넵니다


전달 메커니즘의 선택

두 전달 메커니즘 중 하나를 선택할 때 가장 중요한 기준은 호출 변수의 변경 가능 여부입니다. 

ByRef로 인수를 전달하면 프로시저가 해당 인수를 통해 호출 코드로 값을 반환할 수 있다는 장점이 있고, 

ByVal로 인수를 전달하면 프로시저가 변경하지 못하도록 변수를 보호할 수 있습니다.

전달 메커니즘도 코드 성능에 영향을 미칠 수 있으나 큰 차이는 없습니다. 여기에서 한 가지 예외는 ByVal로 전달되는 값 형식입니다. 

이 경우 Visual Basic에서 인수의 전체 데이터 내용을 복사하므로 구조체처럼 큰 값 형식에 대해서는 ByRef로 전달하는 것이 더 효율적입니다.

참조 형식의 경우에는 데이터에 4바이트 포인터만 복사됩니다. 

따라서 성능에 영향을 주지 않고 String 또는 Object 형식의 인수를 ByVal로 전달할 수 있습니다. 










출처 : msdn, http://liesm.tistory.com/424

'VB' 카테고리의 다른 글

VB6 Call by value / Call by reference  (0) 2018.06.05
VB6 프로시저 (procedure)  (0) 2018.06.05
VB6 iif  (0) 2018.05.14
Visual Basic6 (VB6)에서 마우스 휠 사용하기  (0) 2018.05.02
VB6 Unload / Hide / Show(modal / modeless) 폼 명령어  (0) 2018.04.30
블로그 이미지

벵거빠돌이

,