Q&A

  • 함수 인자에서 var가 뜻하는 바??
델파이로 만들어진 DLL을 VC에서 사용하려고 작업중입니다.

function AA(handle:THandle;pname:pointer;var weight:int64): BOOL; stdcall;

위와 같은 델파이 함수가 있는데, 세번째 파라미터가 var weight:int64로 되어있습니다.
여기서 var가 무엇을 뜻하는지 모르겠습니다.

읽어주셔서 감사드립니다.
5  COMMENTS
  • Profile
    박철수 2010.02.26 19:36
    var는 아마 function AA내부에서 weight변수의 내용을 읽기만 하는 것이 아니라 쓸수도 있는 걸로 알고 있습니다.

    정확하게 설명을 못드리겠네요.

    Call By Reference라고 해야할까요?
  • Profile
    홍성락 2010.02.26 19:36
    함수 인자중 var선언은 in/out을 하겠다는건데요(값을 넘겨주고 또, 받을수 있다는겁니다), 그래서 사용시에는 정수나 문자같은 상수를 넣어선 안되구요, 변수를 넣어야합니다.
    2번째 포인트형은 어떤 값인지 모르나 name인거 보니 PChar이나 문자열의 헤더를 주면 될거 같구요, int64같은경우는 그냥사용하셔도 되나 원 소스에서 용량을 찾아서 델파이에 맞는 형을 다시 사용하셔도 됩니다.
    <!--CodeS-->
    var
    Myweight:int64;
    Mypname:pointer;
    begin
    Myweight := 1;
    if AA(self, Mypname, Myweight) then begin

    end;
    end;
    <!--CodeE-->
  • Profile
    소나기 2010.02.26 19:42
    위 함수는 아마도 weight 라는 변수가 이미 선언되어 있고

    함수를 수행한 후에 그 결과가 var 변수에 적용이 됩니다.

    결국 (in / out) 수행할 수 있습니다.

    예를 들자면


    procedure AA(count1 : Integer ; var count2 : int64) ;
    begin
    Inc(count1);
    Inc(count2);
    end;

    <<<< main
    var count1, count2;

    count1 := 1;
    count2 := 1;

    AA(count1, count2);


    이 함수를 실행 한 후에 값은

    count1 은 1 이고
    count2 는 2 가 됩니다. ^^
  • Profile
    phono 2010.02.26 19:57
    var 로 선언된 argument는 Call By Reference로 처리 하겠다고 컴파일러에게 선언해주는 것 입니다.

    저걸 역어셈블 해서 보면, 일반 argument와의 비교에서 컴파일러가 어떻게 처리 해주는지 바로 알수 있죠.

    var로 선언한 argument는 값이 넘어 가는게 아니라, 그 값을 담고 있는 변수의 주소값이 넘어가게 되고..

    따라서 해당 펑션에서는 그 값을 인위적으로 조작을 할수 있게 되지요. ^^
  • Profile
    오선진 2010.02.26 21:28
    답변감사합니다.

    위 델파이 DLL의 함수를 C++에서 사용하려고 하는데,

    세번째 인자 [var weight:int64]에는 int64형 변수의 주소값을 넘겨주면 될거라 생각되네요. 변수를 넘겨주어야 포인터위치를 정상적으로 참조하려나..

    테스트해 보겠습니다. ^-^
    • 델초
      2010.03.12 02:04
      공지사항에 "원격 디버깅 서비스를 실시 합니다." 라는 내용이 있습니다. 실제로 운영되는지는 모르...
    • 땅콩맨
      2010.03.17 09:35
      경환님 설치가 다 되셨는지 궁금하네요... ^^
    • phono
      2010.03.10 06:11
      주소록 wab 파일 제어와 관련한 소스는 좀 돌아나니는 걸로 알고 있습니다. wab 라는 검색어로 검색을...
    • 땅콩맨
      2010.03.17 09:47
      저도 잠깐 자료를 찾아보았지만 검색이 안되는군요. 좀 시간을두고 찾아보거나 관련자료가 안나오면 유...
    • 서선영
    • 2010.03.08 20:37
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 양용민
    • 2010.03.09 01:57
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 서선영
      2010.03.11 01:49
      "모두" 탭에서 입력하여 연결 했습니다^^ 도움 감사합니다^^
    • 땅콩맨
      2010.03.22 10:45
      다른방법으로는 Jet OLEDB:System database = mdw 파일 경로를 넣어주는 방법이 있습니다. mdw파일은 ...
    • 김태진
      2010.11.24 23:25
      저도 궁금하던 내용인데 답글 달아주신분들 감사합니다.
    • 조덕희
    • 2010.03.07 21:46
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2010.03.10 22:09
      델파이 옵션의 Palette페이지에서 옮기시면 됩니다. 언인스톨도 마찬가지로 옵션에서...
    • 땅콩맨
      2010.03.22 10:47
      컴포넌트 팔렛트의 Properties에 들어가셔서 옮기려는 컴포넌트에 드래그&드랍을 하셔서 옮기는 방법도 ...
    • 땅콩맨
      2010.03.22 10:52
      active-x 컴포넌트의 이름이 길경우 그럴수도 있다는데 컴포넌트 이름의 길이를 좀 줄여보시는게 어떠실지?
    • 오병주
      2010.03.05 20:17
      메일로 답변드렸어요 수고하세요..^^ 건승하세요
    • 초보임당
      2010.03.16 22:59
      SAP 버전마다 틀린걸로 알고 있는데요... SAP설치하면 OCX 가 포함되어 있던데요..
    • 땅콩맨
      2010.03.22 11:00
      탐크루즈님, 나중에 기회되면 저도 보내주시길 부탁르여용~^^
    • 엄마미안
      2010.03.05 19:28
      예전에 SAP동호회에서 다른 랭귀지로 만들어서 SAP로 데이터를 넘긴다는 글을 본적 있는거 같습니다. 여...
    • 엄마미안
      2010.03.05 19:35
      오래된 자료같지만 여길 보시고요. https://forums.sdn.sap.com/message.jspa?messageID=350879 삽...
    • 초보임당
      2010.03.16 22:57
      가능 합니다. 역시 SAP RFC FUNCTION 쓰시면 되는데 ..당연하겠지만 SAP 쪽은 BAPI 개발자가 같이 개발...
    • 이용벽
    • 2010.03.04 21:20
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 백록화
      2010.03.04 22:45
      데이터베이스의 종류와 특정 쿼리문을...
    • 이용벽
      2010.03.05 00:52
      이런 저런 시도 끝에 답을 얻었습니다. COMMENT field 가 MEMO type이었는데 이를 C type로 바꾸니까 에...
    • 이규하
      2010.03.04 18:19
      델파이 안에서 하실께 아니라면 .. 윈도우 무비 메이커를 써보시지요 ... 그림 주욱 붙여서 ... AVI ...
    • 박상윤
      2010.03.08 23:09
      AVI 관련 라이브러리 사용하면 프로그램에 직접 가능 합니다. 단 모든 이미지 크기가 (가로세로)같아야...
    • 이현영
    • 2010.03.03 21:49
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2010.03.04 08:51
      function vdmtAuthenticate(Encode_Service_Name: PChar; Encode_App_Name: PChar): Boolean; stdcall...
    • 홍길동
    • 2010.03.02 06:43
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 오선진
    • 2010.02.26 19:10
    • 5 COMMENTS
    • /
    • 0 LIKES
    • 박철수
      2010.02.26 19:36
      var는 아마 function AA내부에서 weight변수의 내용을 읽기만 하는 것이 아니라 쓸수도 있는 걸로 알고 ...
    • 홍성락
      2010.02.26 19:36
      함수 인자중 var선언은 in/out을 하겠다는건데요(값을 넘겨주고 또, 받을수 있다는겁니다), 그래서 사용...
    • 소나기
      2010.02.26 19:42
      위 함수는 아마도 weight 라는 변수가 이미 선언되어 있고 함수를 수행한 후에 그 결과가 var 변수에 ...
    • phono
      2010.02.26 19:57
      var 로 선언된 argument는 Call By Reference로 처리 하겠다고 컴파일러에게 선언해주는 것 입니다. ...
    • 오선진
      2010.02.26 21:28
      답변감사합니다. 위 델파이 DLL의 함수를 C++에서 사용하려고 하는데, 세번째 인자 [var weight:i...
    • cdrd
    • 2010.02.26 03:09
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2010.03.03 11:50
      뭐든 별 상관없습니다. 델파이2010은 32비트컴파일러입니다. 64비트 윈도우7에서 컴파일한다고 해도 32...
    • cdrd
      2010.03.11 19:42
      최용일님 감사합니다.
    • 박준영
    • 2010.02.26 02:56
    • 2 COMMENTS
    • /
    • 0 LIKES
    • phono
      2010.02.26 05:42
      MS-SQL서버의 로그라는게 한게가 있어서.., 추적하긴 힘들겁니다. 거기다 대부분 MS-SQL서버에 접속...
    • 박준영
      2010.02.26 18:18
      답변 감사합니다. 한번 고려해 봐야 겠네요.. ㅋㅋ 그럼 수고 하세요~~!!
    • 최용일
      2010.02.26 06:26
      VB에서 LONG은 64비트정수입니다. 델파이에서 Int64형과 호환되죠. procedure UniDecoder(var pSrc: I...
    • 오선진
    • 2010.02.25 03:28
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2010.02.26 06:29
      쩝~ 세번째 파라매터가 무엇을 뜻하는지는 함수 만든 사람외에는 알 수 없습니다. 함수만드신 분에게 물...
    • 오선진
      2010.02.26 19:08
      질문이 잘못 됐군요.. 세번째 파라미터가 var weight:int64 로 선언되어 있는데, var가 뜻하는 바를 모...
    • 임대순
      2010.02.26 18:45
      자답입니다. 휴..해결했네요..그냥 하드코딩으로 스캐너에서 다시 한번 입력하게 끔 만들어 줄을 자동...
    • 치꼬
      2010.02.24 22:25
      DevExpress 게시판에 답변 올려
    • 최용일
      2010.02.26 05:59
      콜백은 자신이 아니라 호출한 함수내에서 실행시켜주는것입니다. 위의 예를 보면 JavaParsingDLL.dll에 ...