[VB] Visual Basic 6.0 에서 C/C++ DLL 사용하기
HighCode/Other
2016. 10. 10. 06:17
- DLL 파일(TestDll.dll)
1 2 3 4 5 6 7 8 9 10 | #define TEST_DLL extern "C" __declspec(dllexport) // 1. 'int' Return TEST_DLL int Test_Sum(int Num1, int Num2); // 2. 'void' Return TEST_DLL void Test_Output(); // 3. 'void*' Return TEST_DLL void* CreateUser(); | cs |
▲DLL 에 이러한 함수들이 있다고 가정을 합니다.
미리 선언해줄 부분
1 2 3 4 5 6 7 8 | ' 1. 'int' Return Declare Function Test_Sum Lib "TestDll.dll" (ByVal Num1 As Integer, ByVal Num2 As Integer) As Integer ' 2. 'void' Return Declare Sub Test_Output Lib "TestDll.dll" () ' 3. 'void*' Return Declare Function CreateUser Lib "TestDll.dll" () As Int32 | cs |
기본틀
1 | Declare [Function / Sub] <FunctionName> Lib "<DLL Name>" (인자들) (As 반환값) | cs |
★ VB에서 C/C++ DLL을 사용할 때 알아둘 점
1. 해당함수가 리턴하는 값이 없는 경우(void 형 함수)에는 Sub 를 사용한다.
2. 함수의 인자가 값을 넘겨주는 경우는 ByVal 을 주소값(포인터)를 넘겨주는 경우는 ByRef를 사용한다.
3. 선언의 제일 마지막에는 해당함수의 리턴형태를 As 를 사용해서 지정해준다.
void* 함수처럼 포인터를 리턴하는 경우는 해당 바이트의 수에 맞는 데이터형을 지정한다.
( DLL 에서 32비트 데이터로 리턴을 하면 VB에서도 32비트 데이터형으로 받는다. )
선언이 끝나면 코드에서 사용이 가능한데 사용방법은 C/C++ 에서 함수의 사용과 비슷합니다.
단, Sub 로 선언한 함수의 경우는 Call 명령으로 호출해주도록 합니다.
(ex. Call Test_Output() )
'HighCode > Other' 카테고리의 다른 글
| [VB] Visual Basic 6.0 에서 C/C++ DLL 사용하기 (0) | 2016.10.10 |
|---|