C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[56015] Re:[질문]DLL 에 함수 정의와 호출법. 알려주실분 없나요 ?
마이콜 [] 1717 읽음    2009-02-05 12:00
라이손레종ㅎ 님이 쓰신 글 :
: 음.. 안녕하세요 ?
: 몇일 동안 Q&A를 다뒤져도 속 쉬원한 글을 못찾았습니다..
: 글속의 코드를 따라 해봐도.. 도통.. 안되네요..
: 혼자서 여기저기 글을보고 DLL파일 생성은 어찌 하는법을 알았는데..
:
: DLL에서 함수 정의는 어찌하며, 함수 호출은 또 어찌 하는지..?
:
: 대체 모르겠습니다..  일에 쪼달려 시간이 부족 하시더라도 부디
: 아신다면 답글을 바랍니다..  제가 아는것이 C언어 뿐이어서
: 예제 코딩을 적어주신다면 감사ㅜ.ㅜ 하겠습니다.
///////////////////////

extern "C" __declspec(dllexport) void __stdcall Bmp_800(int t); << 여기 에 Bmp_800 (int t)부분을
님이 만드신함수명으로 대체하세요

#pragma argsused

//---------------------------------------------------------------------------
void __stdcall Bmp_800(int t)  <<  __stdcall 이부분은 함수이름앞에 적어주세요
{
    //이하는 님의 코딩하신부분이라 가정하구요
                코딩.....
             
}
이렇게하시고 컴파일을합니다

다음은 호출부분입니다
HINSTANCE dll;
typedef void (__stdcall *MY_FUNC_testDLL) (int);
       dll = LoadLibraryA("dll파일이름"); //같은자리의경우 그대로파일명만쓰시고 경로가있다면
                 경로까지 써주시면됩니다
       if(dll == NULL) ShowMessage("NO read");
       MY_FUNC_testDLL Bmp_800X=(MY_FUNC_testDLL)GetProcAddress(dll,"Bmp_800");
또한 Bmp_800은 님이만드신함수 이름으로 대체하시고
Bmp_800X 함수사용시 함수이름입니다
다르게 적으셔도 무방합니다

typedef  정의부분은 함수의원형을 적어주셔야합니다 위엔
void 로되어잇지만 원형이 char 일경우 char 로변경해주시고 int 면 int 로 변경
해주세요
()속의 int또한 님이정의해놓으신 변수로 변경해주시고
그렇게한다음 만약 버튼을 누르면 실행하도록 한다면
버튼함수안에 넣어주시고 프로그램실행될때 실행하도록하신다면 OnCreate 안에다가 넣어주시면
되겠습니다
FreeLibrary(dll);
이함수는 마지막에 꼭포함하시구요
OnClose에다가 포함하셔도됩니다 단
HINSTANCE dll;이함수를
전역으로 선언하셔야함
그럼

+ -

관련 글 리스트
56005 [질문]DLL 에 함수 정의와 호출법. 알려주실분 없나요 ? 라이손레종ㅎ 1090 2009/02/04
56015     Re:[질문]DLL 에 함수 정의와 호출법. 알려주실분 없나요 ? 마이콜 1717 2009/02/05
56010     Re:[질문]DLL 에 함수 정의와 호출법. 알려주실분 없나요 ? 둘리 1276 2009/02/05
56022         Re:Re: 두분 답변 감사 드립니다. 라이손레종ㅎ 1002 2009/02/06
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.