Q&A

  • 외부 DLL 선언시 문법 변환...
FPRESULT FPAPI FpObtainModel( LPVOID lpModel, BOOL bLearn, int *lpMLen,

BOOL (*IsObtainOff)( void ),

void (*InfoMsg)( int nMsg ),

void (*UpdateFrameView)( LPBYTE lpFrame ) );



라는 Visual C 에서 사용된 외부 DLL 함수의 선언 프로토타입니다.



이것을 똑같이 파스칼에서 선언하려고 하는데요

너무 어렵네요... ^^;



FPRESULT 는 typedef int FPRESULT; /* return value type */ 를 보고

똑같이 선언을 해줬습니다.



그리고 LPVOID 는 잘모르겠습니다.



BOOL은 똑같이 선언을 했구요...



int *lpMLen 는 lpMLen: ^Integer 로 선언했습니다.



BOOL (*IsObtainOff)( void ) 는 설명서에 보니

IsObtainOff가 사용자 정의 함수라고 합니다.

나머지 두줄과 더불어서 이부분을 델파이에서 어떻게 해야 할지 난감합니다.



고수님들의 도움 부탁드리겠습니다.



참고로 함수사용법 원문을 올립니다.



---------------------------------------------------------------------------------



Parameters

lpModel

Points to the memory buffer.



bLearn

Specifies model type flag.



lpMLen

Points to the variable, if the passed value is not NULL



IsObtainOff

Specifies the address of the user-defined break function, which controls the process of model obtaining.

This function must return TRUE to cancel FpObtainModel execution and FALSE for going on.



InfoMsg

Points to the user-defined procedure, which is responsible for displaying control messages.



UpdateFrameView

Specifies the user-defined function



Remarks

All user-defined functions pointers must not be NULL. If the desired application don’t need displaying captured frames for example, the developer’s responsibility is to create dummy function, which does nothing, and pass its pointer to the FpObtainModel call.



3  COMMENTS
  • Profile
    최용일 2000.04.28 00:53
    안녕하세요. 최용일입니다.



    다음과 같이 해서 사용하세요.



    type

    TlsObtainOff = function: BOOL;

    TInfoMsg = procedure (nMsg: Integer);

    TUpdateFrameView = procedure (lpFrame: PBYTE);



    function FpObtainModel(

    var lpModel;

    bLearn: BOOL;

    lpMLen: PINT;

    lsObtainOff: TlsObtainOff;

    InfoMsg: TInfoMsg;

    UpdateFrameView: TUpdateFrameView): Integer; stdcall;



    ^^ 항상 즐코하세요.



    이도선 wrote:

    > FPRESULT FPAPI FpObtainModel( LPVOID lpModel, BOOL bLearn, int *lpMLen,

    > BOOL (*IsObtainOff)( void ),

    > void (*InfoMsg)( int nMsg ),

    > void (*UpdateFrameView)( LPBYTE lpFrame ) );

    >

    > 라는 Visual C 에서 사용된 외부 DLL 함수의 선언 프로토타입니다.

    >

    > 이것을 똑같이 파스칼에서 선언하려고 하는데요

    > 너무 어렵네요... ^^;

    >

    > FPRESULT 는 typedef int FPRESULT; /* return value type */ 를 보고

    > 똑같이 선언을 해줬습니다.

    >

    > 그리고 LPVOID 는 잘모르겠습니다.

    >

    > BOOL은 똑같이 선언을 했구요...

    >

    > int *lpMLen 는 lpMLen: ^Integer 로 선언했습니다.

    >

    > BOOL (*IsObtainOff)( void ) 는 설명서에 보니

    > IsObtainOff가 사용자 정의 함수라고 합니다.

    > 나머지 두줄과 더불어서 이부분을 델파이에서 어떻게 해야 할지 난감합니다.

    >

    > 고수님들의 도움 부탁드리겠습니다.

    >

    > 참고로 함수사용법 원문을 올립니다.

    >

    > ---------------------------------------------------------------------------------

    >

    > Parameters

    > lpModel

    > Points to the memory buffer.

    >

    > bLearn

    > Specifies model type flag.

    >

    > lpMLen

    > Points to the variable, if the passed value is not NULL

    >

    > IsObtainOff

    > Specifies the address of the user-defined break function, which controls the process of model obtaining.

    > This function must return TRUE to cancel FpObtainModel execution and FALSE for going on.

    >

    > InfoMsg

    > Points to the user-defined procedure, which is responsible for displaying control messages.

    >

    > UpdateFrameView

    > Specifies the user-defined function

    >

    > Remarks

    > All user-defined functions pointers must not be NULL. If the desired application don’t need displaying captured frames for example, the developer’s responsibility is to create dummy function, which does nothing, and pass its pointer to the FpObtainModel call.

    >

  • Profile
    이도선 2000.04.28 01:03
    답변이 굉장히 많은 도움이 되었습니다.

    죄송하지만 한번만더 도와주세요...



    FpObtainModel 를 호출할 때는 어떻게 해야하는지 샘플로

    한줄만 써주시면 감사하겠습니다... ^^;



    최용일 wrote:

    > 안녕하세요. 최용일입니다.

    >

    > 다음과 같이 해서 사용하세요.

    >

    > type

    > TlsObtainOff = function: BOOL;

    > TInfoMsg = procedure (nMsg: Integer);

    > TUpdateFrameView = procedure (lpFrame: PBYTE);

    >

    > function FpObtainModel(

    > var lpModel;

    > bLearn: BOOL;

    > lpMLen: PINT;

    > lsObtainOff: TlsObtainOff;

    > InfoMsg: TInfoMsg;

    > UpdateFrameView: TUpdateFrameView): Integer; stdcall;

    >

    > ^^ 항상 즐코하세요.

    >

    > 이도선 wrote:

    > > FPRESULT FPAPI FpObtainModel( LPVOID lpModel, BOOL bLearn, int *lpMLen,

    > > BOOL (*IsObtainOff)( void ),

    > > void (*InfoMsg)( int nMsg ),

    > > void (*UpdateFrameView)( LPBYTE lpFrame ) );

    > >

    > > 라는 Visual C 에서 사용된 외부 DLL 함수의 선언 프로토타입니다.

    > >

    > > 이것을 똑같이 파스칼에서 선언하려고 하는데요

    > > 너무 어렵네요... ^^;

    > >

    > > FPRESULT 는 typedef int FPRESULT; /* return value type */ 를 보고

    > > 똑같이 선언을 해줬습니다.

    > >

    > > 그리고 LPVOID 는 잘모르겠습니다.

    > >

    > > BOOL은 똑같이 선언을 했구요...

    > >

    > > int *lpMLen 는 lpMLen: ^Integer 로 선언했습니다.

    > >

    > > BOOL (*IsObtainOff)( void ) 는 설명서에 보니

    > > IsObtainOff가 사용자 정의 함수라고 합니다.

    > > 나머지 두줄과 더불어서 이부분을 델파이에서 어떻게 해야 할지 난감합니다.

    > >

    > > 고수님들의 도움 부탁드리겠습니다.

    > >

    > > 참고로 함수사용법 원문을 올립니다.

    > >

    > > ---------------------------------------------------------------------------------

    > >

    > > Parameters

    > > lpModel

    > > Points to the memory buffer.

    > >

    > > bLearn

    > > Specifies model type flag.

    > >

    > > lpMLen

    > > Points to the variable, if the passed value is not NULL

    > >

    > > IsObtainOff

    > > Specifies the address of the user-defined break function, which controls the process of model obtaining.

    > > This function must return TRUE to cancel FpObtainModel execution and FALSE for going on.

    > >

    > > InfoMsg

    > > Points to the user-defined procedure, which is responsible for displaying control messages.

    > >

    > > UpdateFrameView

    > > Specifies the user-defined function

    > >

    > > Remarks

    > > All user-defined functions pointers must not be NULL. If the desired application don’t need displaying captured frames for example, the developer’s responsibility is to create dummy function, which does nothing, and pass its pointer to the FpObtainModel call.

    > >

  • Profile
    최용일 2000.07.13 21:02
    ^^ 안녕하세요. 최용일입니다.



    function TFunc1: BOOL;

    // TlsObtainOff = function: BOOL;

    begin

    ...

    end;



    procedure TProc1(nMsa: Integer);

    // TInfoMsg = procedure (nMsg: Integer);

    begin

    ...

    end;



    procedure TProc2(lpFrame: PBYTE);

    // TUpdateFrameView = procedure (lpFrame: PBYTE);

    begin

    ...

    end;



    var

    lpModel: Pointer;

    // 정해진 크기를 가지고 있다면 lpModel: array[0..크기-1] of Byte;

    lpMLen: PINT;

    R: Integer;

    // Func1, ... 선언...

    begin

    ...

    ...

    Func1 := TFunc1;

    Proc1 := TProc1;

    Proc2 := TProc2;



    R := FpObtainModel(lpModel, False, lpMLen, Func1, Proc1, Proc2);

    ...

    end;



    ^^ 항상 즐코하세요.



    이도선 wrote:

    > 답변이 굉장히 많은 도움이 되었습니다.

    > 죄송하지만 한번만더 도와주세요...

    >

    > FpObtainModel 를 호출할 때는 어떻게 해야하는지 샘플로

    > 한줄만 써주시면 감사하겠습니다... ^^;

    >

    > 최용일 wrote:

    > > 안녕하세요. 최용일입니다.

    > >

    > > 다음과 같이 해서 사용하세요.

    > >

    > > type

    > > TlsObtainOff = function: BOOL;

    > > TInfoMsg = procedure (nMsg: Integer);

    > > TUpdateFrameView = procedure (lpFrame: PBYTE);

    > >

    > > function FpObtainModel(

    > > var lpModel;

    > > bLearn: BOOL;

    > > lpMLen: PINT;

    > > lsObtainOff: TlsObtainOff;

    > > InfoMsg: TInfoMsg;

    > > UpdateFrameView: TUpdateFrameView): Integer; stdcall;

    > >

    > > ^^ 항상 즐코하세요.

    > >

    > > 이도선 wrote:

    > > > FPRESULT FPAPI FpObtainModel( LPVOID lpModel, BOOL bLearn, int *lpMLen,

    > > > BOOL (*IsObtainOff)( void ),

    > > > void (*InfoMsg)( int nMsg ),

    > > > void (*UpdateFrameView)( LPBYTE lpFrame ) );

    > > >

    > > > 라는 Visual C 에서 사용된 외부 DLL 함수의 선언 프로토타입니다.

    > > >

    > > > 이것을 똑같이 파스칼에서 선언하려고 하는데요

    > > > 너무 어렵네요... ^^;

    > > >

    > > > FPRESULT 는 typedef int FPRESULT; /* return value type */ 를 보고

    > > > 똑같이 선언을 해줬습니다.

    > > >

    > > > 그리고 LPVOID 는 잘모르겠습니다.

    > > >

    > > > BOOL은 똑같이 선언을 했구요...

    > > >

    > > > int *lpMLen 는 lpMLen: ^Integer 로 선언했습니다.

    > > >

    > > > BOOL (*IsObtainOff)( void ) 는 설명서에 보니

    > > > IsObtainOff가 사용자 정의 함수라고 합니다.

    > > > 나머지 두줄과 더불어서 이부분을 델파이에서 어떻게 해야 할지 난감합니다.

    > > >

    > > > 고수님들의 도움 부탁드리겠습니다.

    > > >

    > > > 참고로 함수사용법 원문을 올립니다.

    > > >

    > > > ---------------------------------------------------------------------------------

    > > >

    > > > Parameters

    > > > lpModel

    > > > Points to the memory buffer.

    > > >

    > > > bLearn

    > > > Specifies model type flag.

    > > >

    > > > lpMLen

    > > > Points to the variable, if the passed value is not NULL

    > > >

    > > > IsObtainOff

    > > > Specifies the address of the user-defined break function, which controls the process of model obtaining.

    > > > This function must return TRUE to cancel FpObtainModel execution and FALSE for going on.

    > > >

    > > > InfoMsg

    > > > Points to the user-defined procedure, which is responsible for displaying control messages.

    > > >

    > > > UpdateFrameView

    > > > Specifies the user-defined function

    > > >

    > > > Remarks

    > > > All user-defined functions pointers must not be NULL. If the desired application don’t need displaying captured frames for example, the developer’s responsibility is to create dummy function, which does nothing, and pass its pointer to the FpObtainModel call.

    > > >

    • 공성환
    • 2000.04.28 00:54
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2000.04.28 01:43
      안녕하세요. 최용일입니다. 먼저 저는 이쪽에 대한 것은 문외한입니다. 하지만 VC++로 구현할 수 있다면...
    • 정병근
    • 2000.04.28 00:48
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 진숙
      2000.04.28 01:03
      정병근 wrote: > with QR_ED do begin > Close; > SQL.Clear; > SQL.Add(' Sele...
    • 담배연기
      2000.04.28 03:48
      안녕하세요. 질문에 답변을 하면. blgt_no 가 혹시 fieldtype 이 integer가 아닌가요. search.text가 ...
    • 이도선
    • 2000.04.27 23:39
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2000.04.28 00:53
      안녕하세요. 최용일입니다. 다음과 같이 해서 사용하세요. type TlsObtainOff = function: BOOL; ...
    • 이도선
      2000.04.28 01:03
      답변이 굉장히 많은 도움이 되었습니다. 죄송하지만 한번만더 도와주세요... FpObtainModel 를 호출할 ...
    • 최용일
      2000.07.13 21:02
      ^^ 안녕하세요. 최용일입니다. function TFunc1: BOOL; // TlsObtainOff = function: BOOL; begin ...
    • 송기현
    • 2000.04.27 23:31
    • 1 COMMENTS
    • /
    • 0 LIKES
    • TMS
      2000.04.28 18:25
      송기현 wrote: > 여기서 많은 정보를 얻어가는 초보 델피언입니다. > > TChart 를 보면 chart - Genera...
    • 김태열
      2000.04.28 01:55
      장준수 wrote: > > Delphi4를 사용하고 있구요... > > DB는 Oracle입니다. > > 근데 DBD를 실행...
    • 정회원
    • 2000.04.27 23:00
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 김태열
      2000.04.28 01:58
      정회원 wrote: > 델파이 왕 초보입니다.. > login 프로그램을 작성중인데 login check에서 사용자의 id와...
    • 정연
    • 2000.04.27 22:12
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 강인규
      2000.04.28 00:36
      이렇게 해보세요. 핵심부분만 씁니다. whth qry_search do begin Close; SQL.Clear; SQL.A...
    • 정연
      2000.04.28 01:01
      강인규 wrote: > 이렇게 해보세요. 핵심부분만 씁니다. > whth qry_search do begin > Close; > ...
    • 강인규
      2000.04.28 00:44
    • 김종관
      2000.04.28 00:55
    • Nobody
      2000.09.07 18:28
    • 배불뚝
      2000.04.28 02:57
    • 김종관
      2000.04.28 03:12
    • 강인규
      2000.04.28 20:56
    • HART
      2000.04.27 23:59
    • • • •
    • 홍효선
    • 2000.04.27 21:39
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2000.04.27 22:19
      안녕하세요. 최용일입니다. 멀티칼럼을 나타내시려면 리스트박스(TListBox)보다는 리스트뷰(TListView)...
    • 최용일
      2000.04.27 21:51
    • 차니
      2000.04.27 23:22
    • 최용일
      2000.04.28 00:49
    • 차니
      2000.04.29 05:06
    • 최용일
      2000.04.29 06:09
    • angrycow
    • 2000.04.27 20:42
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2000.04.27 21:41
      안녕하세요. 최용일입니다. TDBGrid의 OnDrawColumnCell이벤트에 아래와 같이 코딩하심 됩니다. 먼저...
    • kukuri
    • 2000.04.27 20:12
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 이쁘니
    • 2000.04.27 20:09
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 김영해
      2000.04.27 20:26
      이쁘니 wrote: > 안냥하세요.. > > 몇일째 봄비가 내리네요...후후.. > > 다름이 아니라 NMFTP1를 ...
    • 홍동선
    • 2000.04.27 19:22
    • 4 COMMENTS
    • /
    • 0 LIKES
    • 홍동선
      2000.04.28 23:20
      최용일님 감사합니다. 글구, 추가로 제가 찾은 자료를 올립니다. =================================...
    • 홍동선
      2000.04.28 23:20
      최용일님 감사합니다. 글구, 추가로 제가 찾은 자료를 올립니다. =================================...
    • 최용일
      2000.04.29 00:22
      안녕하세요. 최용일입니다. 함수 호출규약에 대해서 여러가지로 잘못알고 계시네요. > cdecl 방식이 ...
    • 최용일
      2000.04.27 19:53
      안녕하세요. 최용일입니다. interface procedure Dll_Proc(parameters...); stdcall; function Dll_...