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
[56186] Re:Re:Re:Re:Re:Re:Re:[질문]동적 DLL(폼이 있는)을 불러 폼을 띄우고자 ..합니다.
전재득 [jedclub] 1515 읽음    2009-02-17 14:51
void __fastcall TForm1::Button1Click(TObject *Sender)
{

    HMODULE hDll;
    hDll = LoadLibrary("Project1.dll");
    if(hDll==NULL)
    {
        ShowMessage("Can't load dll");
        return;
    }
    typedef void (__cdecl *TestFunc)( TComponent* );  // 여기
    TestFunc Test;

    Test = (TestFunc)GetProcAddress(hDll,"testfunc");
    if(Test)
    {
        Test(this);  // <----이렇게 하라는 거 맞는지요 ?   // 이렇게~~
    }

    // FreeLibrary(hDll);   // 이렇게하면 로드후 Test 호출후 DLL 이 언로드 되기 때문에 깨짐 ㅠㅠ
}


다음과 같이 수정하면 아마 될껍니다 ㅎㅎ






라이손레종ㅎ 님이 쓰신 글 :
: extern "C" __declspec(dllexport) void  __stdcall testfunc( TComponent *pParent )
: {
:     Form2=new TForm2(pParent );
:     Form2->Show();
: }
: 이렇게 하니 DLL 생성은 오류 없이 되었습니다.
: 이것만 수정해서 DLL 로드 하여 버튼 클릭하면
: Access violation at address 400058FE in module 'rtl60.bpl'.Read of address 83EC8B25.
: 오류 메시지가 뜹니다.
:
:
: void TestForm::OnClickButton( TObject *Sender )
: {
:     // TestForm 이 메인 Form 이라면...
:      testfunc( this );
: }
:
: 또 위의 내용처럼 아래 이부분을 수정 하시라 해서 따라 해보았습니다.
: void __fastcall TForm1::Button1Click(TObject *Sender)
: {
:
:     HMODULE hDll;
:     hDll = LoadLibrary("Project1.dll");
:     if(hDll==NULL)
:     {
:         ShowMessage("Can't load dll");
:         return;
:     }
:     typedef __declspec(dllimport) void (*TestFunc)(void);
:     TestFunc Test;
:
:     Test = (TestFunc)GetProcAddress(hDll,"testfunc");
:     if(Test)
:     {
:         (*Test)(this);  // <----이렇게 하라는 거 맞는지요 ?
:     }
:
:     FreeLibrary(hDll);
:
: }
:
: 이렇게 하니... 안되네요.. ㅜ.ㅜ

+ -

관련 글 리스트
56170 [질문]동적 DLL(폼이 있는)을 불러 폼을 띄우고자 ..합니다. 라이손레종ㅎ 1815 2009/02/17
56173     Re:[질문]동적 DLL(폼이 있는)을 불러 폼을 띄우고자 ..합니다. 장성호 3784 2009/02/17
56179         Re:Re:[질문]동적 DLL(폼이 있는)을 불러 폼을 띄우고자 ..합니다. 라이손레종ㅎ 1547 2009/02/17
56181             Re:Re:Re:[질문]동적 DLL(폼이 있는)을 불러 폼을 띄우고자 ..합니다. 전재득 1473 2009/02/17
56182                 Re:Re:Re:Re:[질문]동적 DLL(폼이 있는)을 불러 폼을 띄우고자 ..합니다. 라이손레종ㅎ 1365 2009/02/17
56183                     Re:Re:Re:Re:Re:[질문]동적 DLL(폼이 있는)을 불러 폼을 띄우고자 ..합니다. 전재득 1393 2009/02/17
56184                         Re:Re:Re:Re:Re:Re:[질문]동적 DLL(폼이 있는)을 불러 폼을 띄우고자 ..합니다. 라이손레종ㅎ 1518 2009/02/17
56186                             Re:Re:Re:Re:Re:Re:Re:[질문]동적 DLL(폼이 있는)을 불러 폼을 띄우고자 ..합니다. 전재득 1515 2009/02/17
56185                             Re:Re:Re:Re:Re:Re:Re:[질문]동적 DLL(폼이 있는)을 불러 폼을 띄우고자 ..합니다. 장성호 1692 2009/02/17
56187                                 Re:Re:Re:Re:Re:Re:Re:Re:휴아~ 답변 감사합니다~ 라이손레종ㅎ 1517 2009/02/17
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.