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
[12854] 함수 제작시 pchar을 인자로 넘기고 pchar를 결과로 방법에 대해서..
한울 [sjydevil] 1720 읽음    2009-08-05 19:45
델파이로 표준 C 방식의 dll을 만들어서 다른 프로그램에서 사용하려고 합니다.
dll에서 정의된 함수 호출시 함수의 인자를 PChar로 넘길려고 하는데요. 잘 안되네요.

PChar를 인자로 주고 PChar로 결과를 받는 방법은 무엇인가요?

---------------호출 프로그램 ---------------------------
function MyReplace(luDate: PChar): PChar; external 'MyDLL.dll';

procedure TForm1.Button1Click(Sender: TObject);
var
  rtn: string;
  aPChar: PChar;
begin
  aPChar := PChar('1990-09-19');
  aPChar := MyReplace(aPChar);
  rtn := StrPas(aPChar);
  ShowMessage(rtn);
end;

-----------------dll 프로그램(MyDLL.dll) ------------------------
library MyDLL;

uses
  SysUtils, Classes;

{$R *.res}

function MyReplace(luDate: PChar): PChar; cdecl;
var
  TmpStr: String;
  luYear, luMonth, luDay: Integer;
begin
  TmpStr:= StrPas(luDate);

  TmpStr := StringReplace( TmpStr, '-', '', [rfReplaceAll] );

  luYear  := StrToInt(copy(TmpStr,1,4));
  luMonth := StrToInt(copy(TmpStr,5,2));
  luDay   := StrToInt(copy(TmpStr,7,2));

  TmpStr:= Format('%s-%s-%s'#0, [IntToStr(luYear),  IntToStr(luMonth), IntToStr(luoDay)]);
  Result := PChar(TmpStr);
end;

exports MyReplace;

begin
end.
------------------------------------------------------------

관심 가져주셔서 감사합니다.

+ -

관련 글 리스트
12854 함수 제작시 pchar을 인자로 넘기고 pchar를 결과로 방법에 대해서.. 한울 1720 2009/08/05
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.