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
[25564] 답변 감사드립니다.^^(내용무)
김민식 [mspower] 551 읽음    2003-05-13 01:39
서비 님이 쓰신 글 :
: DLL에서 메인의 함수를 콜할 수 있나요..? ^^
:
: 이런경우는 될 수 없습니다.
:
: DllFunc에 들어가는 인자중 Form1이라는 클래스는 DLL 내부에 정의 되어있지 않기때문에
:
: Form1안에 있는 함수를 호출할 수 없죠..
:
: 방법은 DLL이 Form1에서 어떤 작업을 처리해줄것을 요구할 때 WM_USER + n(1,2,3,4 5...)
:
: 메세지를 통해 DLL에서 Form1으로 SendMessage를 통해 요구하고,
:
: Form1에서는 WM_USER + n 을 받아서 처리하면 되겠죠?
:
: 예를 들어 설명하자면 다음과 같습니다.
: Form1의 헤더
: --------------------------------------
: protected:
:     void __fastcall OnTestFunc(TMessage &Msg);
:
:     BEGIN_MESSAGE_MAP
:         MESSAGE_HANDLER(WM_USER + 1, TMessage, OnTestFunc);
:     END_MESSAGE_MAP(TForm)
:
: DLL에서는
: -------------------------------------
: extern "C" __declspec(dllexport) int __stdcall DllFunc(HWND hWnd)
: {   
:     SendMessage(hWnd, WM_USER + 1, 0, 0);
:     form->MainTestFunc();
: }
:
: OnTestFunc에서 원하는 함수를 호출하면 되겠습니다 ^^;
:
: 설명이 잘됬나 모르겠네요... 다른 질문들도 검색해보세요.
:
: 김민식 님이 쓰신 글 :
: :
: : DLL 에서 메인프로그램쪽의 함수를 콜하려면 어떻게 해야 하나요.
: :
: : //***********  메인 프로그램 *********************//
: :
: : void __fastcall TForm1::MainTestFunc(void)
: : {
: :     Memo1->Lines->Add("Run MainTestFunc");
: : }
: :
: : int (__stdcall *DllCall)(TForm1 *);
: : void __fastcall TForm1::Button1Click(TObject *Sender)
: : {
: :     HINSTANCE DllInstance;
: :     DllInstance = LoadLibrary("Dll.dll");
: :     DllCall = (int(__stdcall *)(TForm1 *))GetProcAddress(DllInstance, "DllFunc");
: :    
: :     DllCall(Form1);
: : }
: :
: :
: : //***********  DLL *********************//
: :
: : extern "C" __declspec(dllexport) int __stdcall DllFunc(TForm1 *form)
: : {
: :     form->MainTestFunc();
: : }
: :
: : 위와 같이 하면 DLL 컴파일시 에러가 납니다.
: :
: : [Linker Error] Unresolved external .....
: :
: : 고수님의 도움 부탁드립니다.
: :
: :

+ -

관련 글 리스트
25536 [질문]DLL쪽 함수에서 메인쪽 함수콜을 하려면 어떻게 해야 하나요? 김민식 705 2003/05/11
25543     Re:[질문]DLL쪽 함수에서 메인쪽 함수콜을 하려면 어떻게 해야 하나요? 서비 884 2003/05/12
25564         답변 감사드립니다.^^(내용무) 김민식 551 2003/05/13
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.