Q&A

  • 프로시저의 인수로 열린 배열을 쓸 경우...
안녕하세요. 까막입니다.

프로시저를 선언했습니다. 인수는 열린 배열로...
procedure TFRM_Trans.UDP_GetFileNext(var FBuffer : array of Char);  --> 열린 배열.
begin
나름대로의 처리... ^^
end;


그리고, 이 프로시저를 호출을 하는데요.
procedure TFRM_Trans.UDP_RemoteReceive(RFlag : integer);
var
FHandle      : integer;
ReceiveCount : integer; // 파일 수신 횟수.
FileBuffer   : array of Char;  --> 동적 배열 선언.
begin
SetLength(FileBuffer,iConfig.FileLength);  --> 크기 지정.
FillChar(SendBuffer,iConfig.TransLength,#0);
FillChar(FileBuffer,iConfig.FileLength ,#0);
case RFlag of
   GETINFO :
   begin // 파일 정보 일치시 다음 파일 정보 요구.
     if GetFileInfo() then  UDP_GetFileNext(FileBuffer)  --> 여기서 에러 발생.

에러 메세지.
Incompatible types: 'Array' and 'dynamic array'

열린 배열로 인수를 만들면 일반 정적 배열이나 동적 배열 모두 인수로 사용할 수 있는거 아닌가요?
그렇게 알고 있는데요.
델파이 6 시작 그리고 완성 에서도 그렇게 나와 있고요.
쓰고 있는 델파이 버젼은 델파이 6 입니다.

혹시 컴파일 옵션등에 따라 변할 수도 있나요? 특별히 건드린 것은 없는데...

도움 바랍니다.



                                      위대한 단군혼이 살아있는 나라.... 대한민국.
1  COMMENTS
  • Profile
    구창민 2003.03.27 03:38
    array of Char 형을 하나 선언하시고 그 형을 넘겨보세요.

    Type
      TTestArrayChar : array of Char;

    var
      a : TTestArrayChar;
    begin
      //DoSomeThing..
      UDP_GetFileNext(a);


    호출되는 프로시져에선..

    procedure TFRM_Trans.UDP_GetFileNext(FBuffer : TTestArrayChar);  


    음.. 게임방이라서 막적었는데,

    이렇게 하심 될거 같네여..

    그럼~ 항상 즐거운 프로그래밍 하시길~~