프로그래밍 노트

델파이에서 DLL에 숫자 파라미터를 참조로 넘기는 방법 본문

델파이

델파이에서 DLL에 숫자 파라미터를 참조로 넘기는 방법

띠리 2007. 8. 8. 10:47


숫자 변수를 참조 파라미터로 넘기는 간단한 C의 DLL 소스

extern "C"

{

    // Integer 인수를 참조로 넘겨주기

    int    PASCAL EXPORT NumChg(int& nChg)

    {

        nChg = nChg * 2;

        return nChg;

    }
}



DLL에서 숫자 변수를 참조 파라미터로 넘기려며는
참조 파라미터로 넘기는 파라미터 앞에 var를 넣으면 된다.


숫자 변수를 참조 파라미터로 넘기고 받는 델파이 소스

unit dtest;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls, TeEngine, Series, TeeProcs, Chart;

type
  TfrmMain = class(TForm)
    btnTest: TButton;
    edtStr: TEdit;
    lblStr: TLabel;
    edtNo: TEdit;
    lblNo: TLabel;
    procedure btnTestClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  frmMain: TfrmMain;

implementation

{$R *.dfm}

// 정수 변수를 참조 인수로 넘기기 위해서는 var를 써준다.
function NumChg(var nNo:Integer):integer; stdcall; external 'dtest.dll';

procedure TfrmMain.btnTestClick(Sender: TObject);
var
  nNo:Integer;
  psStr:PChar;
  sString:String;
  nWork:Integer;

begin

  // 문자를 숫자로
  nNo := StrToInt(edtNo.Text);

  // 참조 숫자 인수에 데이터를 넘기고
  // 바뀌어진 인수데이터 얻기
  nWork := NumChg(nNo);
  lblNo.Caption := IntToStr(nNo);

end;

end.


Comments