Q&A

  • DLL에서 구조체 전달방법
DLL을 통해서 타프로그램에 서비스를 하려고 합니다.



그런데 데이타 전달을 할 경우에 Integer나 PChar등은 문제가 없는데



구조체를 전달하려고 하니까 Error가 발생을 합니다.(Delphi에서 Call하면

문제가 없으나 Powerbuild에서 Call하면 Error 발생)



구조체 선언을 할때에 특별한 또다른 선언을 해야하는지 아니면



델파이에서는 Standard한 구조체 전달이 불가능한지 아시는분 있으면



답변바랍니다.(Please!!)



type

recIntLogin = record

nID : DWORD;

nPasswd : DWORD;

end;



function TransInteger( InLogin : recIntLogin; var OutLogin : recIntLogin ): Boolean; stdcall;



implementation



function TransInteger( InLogin : recIntLogin; var OutLogin : recIntLogin ): Boolean; stdcall;

begin

ShowMessage( 'TransInteger Called : ' + IntToStr( InLogin.nID ) + '/' + IntToStr( InLogin.nPasswd ) ); <- Display는 되지만 엉뚱한 값이 Display

OutLogin.nID := InLogin.nID; <- 이 부분에서 Ploting Point Error발생

OutLogin.nPasswd := InLogin.nPasswd;

result := TRUE;

end;







2  COMMENTS
  • Profile
    2001.01.31 02:08
    음..

    혹 도움이 될까해서 답변을 드립니다.

    DLL을 작성하실때 'DWORD' type을 사용하지 마시고 (Power Builder에 이런 Type이 있나여? 안써봐서 모르겠네요..) LongWord type을 사용해 보세요.

    제 생각엔 각 언어에서 재정의된 Type말고 Window에서 기본적으로 사용되는 표준 Type을 사용하면 해결되지 않을까 하네요..



    혹 틀리더라도 넘 면박주지 마세요.. T.T

    약간의 도움이라도 되었길..





    최경훈 wrote:

    > DLL을 통해서 타프로그램에 서비스를 하려고 합니다.

    >

    > 그런데 데이타 전달을 할 경우에 Integer나 PChar등은 문제가 없는데

    >

    > 구조체를 전달하려고 하니까 Error가 발생을 합니다.(Delphi에서 Call하면

    > 문제가 없으나 Powerbuild에서 Call하면 Error 발생)

    >

    > 구조체 선언을 할때에 특별한 또다른 선언을 해야하는지 아니면

    >

    > 델파이에서는 Standard한 구조체 전달이 불가능한지 아시는분 있으면

    >

    > 답변바랍니다.(Please!!)

    >

    > type

    > recIntLogin = record

    > nID : DWORD;

    > nPasswd : DWORD;

    > end;

    >

    > function TransInteger( InLogin : recIntLogin; var OutLogin : recIntLogin ): Boolean; stdcall;

    >

    > implementation

    >

    > function TransInteger( InLogin : recIntLogin; var OutLogin : recIntLogin ): Boolean; stdcall;

    > begin

    > ShowMessage( 'TransInteger Called : ' + IntToStr( InLogin.nID ) + '/' + IntToStr( InLogin.nPasswd ) ); <- Display는 되지만 엉뚱한 값이 Display

    > OutLogin.nID := InLogin.nID; <- 이 부분에서 Ploting Point Error발생

    > OutLogin.nPasswd := InLogin.nPasswd;

    > result := TRUE;

    > end;

    >

    >

    >

  • Profile
    ^^ 2001.01.31 08:35
    희 wrote:

    > 음..

    > 혹 도움이 될까해서 답변을 드립니다.

    > DLL을 작성하실때 'DWORD' type을 사용하지 마시고 (Power Builder에 이런 Type이 있나여? 안써봐서 모르겠네요..) LongWord type을 사용해 보세요.

    > 제 생각엔 각 언어에서 재정의된 Type말고 Window에서 기본적으로 사용되는 표준 Type을 사용하면 해결되지 않을까 하네요..

    >

    > 혹 틀리더라도 넘 면박주지 마세요.. T.T

    > 약간의 도움이라도 되었길..

    >

    >

    > 최경훈 wrote:

    > > DLL을 통해서 타프로그램에 서비스를 하려고 합니다.

    > >

    > > 그런데 데이타 전달을 할 경우에 Integer나 PChar등은 문제가 없는데

    > >

    > > 구조체를 전달하려고 하니까 Error가 발생을 합니다.(Delphi에서 Call하면

    > > 문제가 없으나 Powerbuild에서 Call하면 Error 발생)

    > >

    > > 구조체 선언을 할때에 특별한 또다른 선언을 해야하는지 아니면

    > >

    > > 델파이에서는 Standard한 구조체 전달이 불가능한지 아시는분 있으면

    > >

    > > 답변바랍니다.(Please!!)

    > >

    > > type

    > > recIntLogin = record

    > > nID : DWORD;

    > > nPasswd : DWORD;

    > > end;

    > >

    > > function TransInteger( InLogin : recIntLogin; var OutLogin : recIntLogin ): Boolean; stdcall;

    > >

    > > implementation

    > >

    > > function TransInteger( InLogin : recIntLogin; var OutLogin : recIntLogin ): Boolean; stdcall;

    > > begin

    > > ShowMessage( 'TransInteger Called : ' + IntToStr( InLogin.nID ) + '/' + IntToStr( InLogin.nPasswd ) ); <- Display는 되지만 엉뚱한 값이 Display

    > > OutLogin.nID := InLogin.nID; <- 이 부분에서 Ploting Point Error발생

    > > OutLogin.nPasswd := InLogin.nPasswd;

    > > result := TRUE;

    > > end;

    > >

    > >

    > >

    • 손용석
      2001.01.31 01:16
      DataBase1.Params.Values['DATABASE NAME'] := 'Z:DB_____.MDB' 이런식이죠!! 도움이 되었으면 좋겠...
    • 호야
      2001.01.31 18:35
      손용석 wrote: > > DataBase1.Params.Values['DATABASE NAME'] := 'Z:DB_____.MDB' > > 이런식이죠!!...
    • 성더기
      2001.01.31 22:01
      vender init어쩌구 하는 에러의 대부분은... Oracle에 path가 안걸려 있거나 BDE의 VENDER INIT에 있는 DL...
    • 초보자
      2001.02.01 08:52
      성더기 wrote: > vender init어쩌구 하는 에러의 대부분은... > Oracle에 path가 안걸려 있거나 BDE의 VE...
    • 아폴론
      2001.01.31 01:36
      안녕하세요 오라클을 PC와 연결 하셨다니 축하드립니다. 매우 어렵던데... 오라클과 텔과의 연결은..음 ...
    • 방기남
      2001.01.31 00:28
      같은 상황일 것 같지만 환경이 다를수도 있으니 정답이 아닐수도 있습니다. 저 같은 경우엔 SERVER...
    • 과객
    • 2001.01.31 00:03
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 손용석
      2001.01.31 02:06
      컴포넌트 하나 소개하겠습니다...!! 'Async'라고 RS-232C 통신을 할때 쓸만 하더군요..?! 저는 RS-23...
    • 손용석
      2001.01.31 02:20
      아래내용은 제가 가지고 있는 FAQ플그램내에 있는 내용입니다. 저도 같은 문제로... ㅜ.ㅜ; ////////...
    • 김범수
    • 2001.01.30 23:21
    • 5 COMMENTS
    • /
    • 0 LIKES
    • 뿌요
      2001.01.31 18:37
      ..
    • 망치
      2001.01.30 23:53
      김범수 wrote: > 1.테이블 : 부서코드 부서명 : bu_name > 적정인원:bu_to >...
    • 공성환
      2001.01.30 23:47
      SELECT A.BU_NAME, SUM(B.inwonto), SUM(B.bu_num ), SUM(B.over ) FROM 부...
    • 김범수
      2001.01.31 00:06
      답변감사합니다. 출력필드에 부서명(a.bu_name), 적정인원(a.bu_to),부서인원(이부분은 count(*) group by...
    • 공성환
      2001.01.31 02:15
      작성하신 sql문을 적어주시는게 이해가 잘될것같네요... 머리가 나빠서리.... 김범수 wrote: > 답변감...
    • moon
    • 2001.01.30 22:59
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 투덜이
      2001.01.30 23:34
      폼의 Object Inspector에 보시면 Anchors라는 Property가 있습니다. 거기서 고정여부를 True, False로 적...
    • aha
    • 2001.01.30 22:58
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 액션가면
      2001.01.31 00:18
      안녕하세여~ 인터베이스라고 유달리 다른 DB는 아니구여 파라독스나 SQL-SERVER, Oracle등과 별 차이...
    • aha
      2001.01.31 02:09
      안녕하세요 아하입니다. 답변에 감사드립니다. by the way, 델코에 인터베이스 설치에 관한 메뉴얼이...
    • 최경훈
    • 2001.01.30 22:43
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 2001.01.31 02:08
      음.. 혹 도움이 될까해서 답변을 드립니다. DLL을 작성하실때 'DWORD' type을 사용하지 마시고 (Power Bu...
    • ^^
      2001.01.31 08:35
      희 wrote: > 음.. > 혹 도움이 될까해서 답변을 드립니다. > DLL을 작성하실때 'DWORD' type을 사용하지...
    • 컴사랑
    • 2001.01.30 21:35
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 델피언.......
      2001.01.30 23:07
      컴사랑 wrote: > ip가 없는 로컬 db(MSSQL DB)에 다른 컴퓨터를 연결하려고 합니다. > > 즉 하나의 프...
    • 강정한
    • 2001.01.30 21:03
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 망치
      2001.01.31 00:59
      강정한 wrote: > 제가 사용하는 환경은 오라클입니다. > 특정테이블이 있는데, 여기엔 프라이머키로 잡은...
    • 김석경
    • 2001.01.30 20:38
    • 3 COMMENTS
    • /
    • 0 LIKES
    • hobakpa
      2001.01.30 20:46
      김석경 wrote: > 델파이에서 스토어드 프로시져를 연결해서 ms-sql의 storedprocedure를 실행하는데 > 아...
    • 김석경
      2001.01.30 20:51
      hobakpa wrote: > 김석경 wrote: > > 델파이에서 스토어드 프로시져를 연결해서 ms-sql의 storedprocedur...
    • hobakpa
      2001.01.30 21:16
      > 파라미터 타입은 전부 input으로 주고 데이타 타입은 string으로 주었지요. > 근데 select, delete하는 ...