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

델파이 Q&A
Delphi Programming Q&A
[9928] Re:[질문]비베로만든 dll을 델파이에서 콜할때....?
il's [magicfox] 1505 읽음    2004-11-27 11:25
VB 에서 만든 DLL 이 ActiveDll 일거라고 생각해고 답변을 드립니다.

C++ Builder 부

    // VB 로 만든 Dll 을 읽어 들인다.
    try
    {
        Function Func("VideoCapture");   // Dll 파일명
        ModuleRepairMainForm->VCapture.Exec(Func);
    }
    catch(...)
    {
        // Dll을 실행하는데 실패하였을때
        VideoCaptureButton->Enabled = false;
    }

VB 클래스 모듈 부
Option Explicit

Private FCaptureForm As CaptureForm

Private Sub Class_Initialize()
    Set FCaptureForm = New CaptureForm
End Sub

Public Sub VideoCapture()
    FCaptureForm .ImageBuffer.Save ".\Temp\Temp.BMP"
End Sub


Dll 실행 방법입니다.   Dll은 프로그램이 실행되는 폴더에 같이 있어야 합니다.
Dll 파일만 복사해서는 안되거든요 그 Dll 을 레지스트리에 등록하고 사용하면 됩니다

그리고 VB 의 소스에 파일명과 같은 함수를 만들어서 실행하고자 하는 부분을 넣으시면 될겁니다.
Delphi 에서도 같을거라 생각합니다.

그럼 줄거운 하루 보내세요 ~~~



델 초보 님이 쓰신 글 :
: 비베로 만든 dll이 있습니다.
: 콜하는것은
:
: procedure TRealView.Multiddll;
: type
: //dll에 있는 함수 파라메터와 리턴값
:   TFunc = function(vxx:single;vyy:single;vzz:single;nam:string):double;stdcall;
: var
: //=================
:     H:Thandle;
:     MyFunc:TFunc;
:     s,press:string;
:     dou:double;
:     a,b,c:integer;
: //====================
:
: begin
:   a:=1;b:=1;c:=1;
:   H:=LoadLibrary('MultiD_DLL.dll');
:   if(H>32) then           //dll을 찾지 못하면 32보다 작은 수를 반환
:   begin
:     @MyFunc := GetProcAddress(H,'GetValue_MultiD');
:     if(@MyFunc <> nil) then    //주소를 얻지 못하면 nil을 반환
:     begin
:       //press:=
:       dou:=MyFunc(a,b,c,press);
: //      Realview.Caption(s);
:       ShowMessage(FloatToStr(dou));
:     end
:
:     else
:     begin
:       s:='MultiD_DLL.dll의 GetValue_MultiD(주소 얻는데 실패)를 찾을수 없다!';  //-----1번 오류 출력!!!
:       ShowMessage(s);
:     end;
:     FreeLibrary(H);
:   end
:   else
:   begin
:     s:='MultiD_DLL.dll을 찾을수 없다';
:     ShowMessage(s);
:   end;
:
: end;
:
: 이렇게 불러오고 있는데..dll찾는 것은 되지만 dll에 있는 함수를 찾지 못하고...계속해서
:
: 1번 오류가 출력되고 있습니다.
: 왜 그런지 알려주세요..
: 문법은 맞는거 같은데..혹...틀린점이 있으면 알려주세요!!.
: 부탁 합니다.

+ -

관련 글 리스트
9925 [질문]비베로만든 dll을 델파이에서 콜할때....? 델 초보 884 2004/11/23
9928     Re:[질문]비베로만든 dll을 델파이에서 콜할때....? il's 1505 2004/11/27
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.