Visual Basic > Tip&Tech > delfi에서 dll 만든 후 vb에서 호출하는 예제
 
Visual Studio
Library
Tip&Tech
Q&A
 
 
Tip&Tech
  HOME > Visual Basic > Tip&Tech
 
작성일 : 09-08-08 18:05
delfi에서 dll 만든 후 vb에서 호출하는 예제
 글쓴이 : 덩벙이 (211.♡.155.10)
조회 : 3,667   추천 : 0   비추천 : 0  

*주의 : Devcpp 4.9.8.0 버전을 사용했습니다.

 

1.메뉴에서 파일->새로만들기-> 프로젝트 선택

2.dll 템플릿 프로젝트를 선택

 

3. 새로 생성된 프로젝트를 저장

 

4. 자동으로 생성된 헤더파일

#ifndef _DLL_H_
#define _DLL_H_

#if BUILDING_DLL
# define DLLIMPORT __declspec (dllexport)
#else
/* Not BUILDING_DLL */
# define DLLIMPORT __declspec (dllimport)
#endif
/* Not BUILDING_DLL */


class DLLIMPORT DllClass
{
  public:
    DllClass();
    virtual ~DllClass(void);

  private:

};

#endif
/* _DLL_H_ */

 

5. 자동으로 생성된 소스 파일

/* Replace "dll.h" with the name of your header */
#include "dll.h"
#include <windows.h>


DllClass::DllClass()
{

}


DllClass::~DllClass ()
{

}


BOOL APIENTRY
DllMain (
  HINSTANCE hInst    
/* Library instance handle. */ ,
  DWORD reason       
/* Reason this function is being called. */ ,
  LPVOID reserved    
/* Not used. */ )
{
   
switch (reason)
    {
     
case DLL_PROCESS_ATTACH:
       
break;
     
case DLL_PROCESS_DETACH:
       
break;
     
case DLL_THREAD_ATTACH:
       
break;
     
case DLL_THREAD_DETACH:
       
break;
    }
   
/* Returns TRUE on success, FALSE on failure */
   
return TRUE;
}

 

6. 위의 소스들에 사용자 정의 함수를 넣기

헤더파일

#ifndef _DLL_H_
#define _DLL_H_

#if BUILDING_DLL
# define DLLIMPORT __declspec (dllexport)
#else
/* Not BUILDING_DLL */
# define DLLIMPORT __declspec (dllimport)
#endif
/* Not BUILDING_DLL */


extern "C" __declspec(dllexport) _stdcall int AddInteger(int a, int b);

class DLLIMPORT DllClass
{
  public:
    DllClass();
    virtual ~DllClass(void);

  private:

};

#endif /* _DLL_H_ */

 

소스파일

/* Replace "dll.h" with the name of your header */
#include "dll.h"
#include <windows.h>


DllClass::DllClass()
{

}


DllClass::~DllClass ()
{

}


BOOL APIENTRY
DllMain (
  HINSTANCE hInst    
/* Library instance handle. */
,
  DWORD reason       
/* Reason this function is being called. */
,
  LPVOID reserved    
/* Not used. */
)
{
   
switch
(reason)
    {
     
case
DLL_PROCESS_ATTACH:
       
break
;
     
case
DLL_PROCESS_DETACH:
       
break
;
     
case
DLL_THREAD_ATTACH:
       
break
;
     
case
DLL_THREAD_DETACH:
       
break
;
    }
   
/* Returns TRUE on success, FALSE on failure */
   
return TRUE;
}
extern "C" __declspec(dllexport) _stdcall int AddInteger(int a, int b) 
{ 
   return a+b; 
}
 
7. 위의 소스들을 DevC++에서 컴파일





















8. VB에서 표준 exe로 새 프로젝트를 생성, 커맨드 버튼 하나 추가, 모듈 추가 
 
9. 생성된 mydll.dll 파일을 vb 소스파일이 있는 곳에 복사 
 
10. 모듈에 dll을 사용할 수 있게 코딩 
11. 폼에 코딩 
 
* 위에서 dll 함수 작성시 _stdcall 을 사용 안했다면 아래의 12번을
_stdcall 을 사용했다면 exe 파일을 만들지 않아도 run 명령만으로도 오류없이
실행이 됩니다.
12. 메뉴에서 ~.exe 만들기 선택 (주의! IDE 상에서 Run을 실행하면 에러 발생함.) 
 
13. 저장할 exe 파일명 작성하고 저장하면 컴파일됨 
 
14. 컴파일 된 project1.exe 파일을 실행하면 제대로 dll을 호출하는 결과가 나옴.
 

 
 

Total 12
번호 제   목 글쓴이 날짜 추천 비추천 조회
12 VB로 Active-X 컨트롤 만들때.. 호출한 HTML페이지에 이벤트 던… 덩벙이 12-09 0 0 3363
11 InstallFactory(인스톨팩토리)로 VB프로그램 배포하기 덩벙이 10-04 0 0 4758
10 웹에서 Vb로 만든 ActiveX 컨트롤 사용 덩벙이 03-08 0 0 4658
9 VB ActiveX 컨트롤을 이용한 파일 복사 및 로컬 컴퓨터 내 실행 … 덩벙이 03-08 0 0 6318
8 VB로 웹 PARAM값 넘기기 덩벙이 01-20 0 0 8350
7 진행바 표시 만들기 덩벙이 01-20 0 0 5881
6 웹사이트 소스를 가져와 필요한 부분만 얻어봅시다(Inet). 덩벙이 01-20 0 0 6262
5 ProgressBar컨트롤 덩벙이 01-20 0 0 5893
4 Winsock을 이용한 다중 채팅 예제입니다 (2) 덩벙이 12-16 0 0 5967
3 html 내용 분석 방법... 덩벙이 09-21 0 0 4108
2    html 내용 분석 방법... 덩벙이 09-21 0 0 4036
1 delfi에서 dll 만든 후 vb에서 호출하는 예제 덩벙이 08-08 0 0 3668
 
개인홈페이지 덤벙닷컴은 프로그래머와 디자이너위한 IT커뮤니티 공간입니다.
Copyright ⓒ www.dumbung.com. All rights reserved.