본문 바로가기
호구지책/VB6

[VB6] 비주얼베이직 6.0에서 DLL 호출하기

by 하늘의흐름 2017. 11. 29.
반응형

DLL 파일의 이름.

DLL 파일에서 사용하는 함수 이름

함수의 인자값(int인지, bool 인지 등)


DLL 함수 선언 방법


'기본형태

Declare Function PineapplePen Lib "TestLib.dll" (ByVal a Interger) As Boolean


' void 리턴시에는 sub

Declare Sub PineapplePen Lib "TestLib.dll" ()


' void* 리턴시에는 Int32를 반환하기

Declare Function PineapplePen Lib "TestLib.dll" () As Int32



ByVal은 함수에 변수를 넣는 것이고,


ByRef은 함수에 변수를 넣되, 

그 변수에 값을 써서 돌려준다. (c에는 num1* 이런식으로 포인터 형식으로 지정되어 있다.)


맨 뒤에 붙는 As ~~ 는 최종 리턴값을 의미한다.



그리고 Interger도 아니고 Boolean 도 아니고.. 데이터 형이 없는 변수들이 있다.

그건 구조체 변수라고 한다.

구조체는 따로 작성을 해줘야 한다.


DLL 함수 호출 방법


쓰고 싶은 폼form으로 간다.

거기에서 버튼을 눌러서 DLL 함수를 호출한다고 치자.

버튼을 더블클릭한다.

소스 입력창이 뜬다.


소스에 다가


결과값 = 함수명(인자값)


이렇게 입력해주면 된다.


함수명이 PineapplePen() 이라고 하고,

호출 결과값으로 Boolean 을 리턴한다고 하면


Dim result As Boolean

result = PineapplePen()


이렇게 쓰면된다.


인자값은.. youtube를 입력하면 조회수를 리턴한다고 치자.


Dim result As Boolean

Dim count As Long


result = PineapplePen('youtube', count)


이런식으로 쓰면 count 변수로 조회수를 알 수 있다.
(어디까지나 예시.. 진짜로 조회수를 가져오려면 이것보다 훨씬 복잡하다.)



구조체 예제

'예를 들어 MyFriend(내친구)라는 구조체를 만든다고 하면


Public Type MyFriend

 age As Integer

 name As String

 hobby As String

End Type


이렇게 상단에 선언해주고, 변수처럼 쓰면 된다.

변수들을 특정한 형식으로 모아둔 게 구조체다.

변수 묶음이라고 볼 수 있겠다.



... DDL 호출을 하느라 애먹었다.

그래도 자료들을 잘 찾아서 너무 늦게까지 야근을하진 않았다.

자료 올려주신 분들께 감사..


참고

[VB] Visual Basic 6.0 에서 C/C++ DLL 사용하기

[VB] Visual Basic 에서 C/C++ 로 만든 DLL 불러쓰기...

[VB6] 변수의 데이터 형 및 선언

VB에서 구조체(Type) 선언하여 사용하기

[VB]자료구조. 구조체.

반응형

댓글