Q&A

  • EXPORTS allowed only at global scope ?????????????
왜 이런 에러가 나는지 모르겠군요



다름과 같이 개략적으로 프로그램의 소스를 적었습니다.



에러 메세지를 보면 위치가 잘못됐다는 말같은데 위치가 틀린가요?



어떻게 해야 되나요?





library version1;



uses

Windows,

...

DBGrids;



{$R *.RES}



var

column : array of array[1..4] of string;



procedure token(index:integer; s:string);

function search(flag:integer):Boolean;





function makestr():string; overload; stdcall;

var

...

begin

...

end;



function makestr() : string; overload; stdcall;

var

...

begin

...

end;



procedure token(index:integer; s:string);

var

...

begin

...

end;





function search(flag:integer): Boolean;

var

...

begin

...

end;



exports

makestr;



begin

end.



감사합니다.

2  COMMENTS
  • Profile
    유효종 2000.01.26 03:37
    김진호 wrote:

    > 왜 이런 에러가 나는지 모르겠군요

    >

    > 다름과 같이 개략적으로 프로그램의 소스를 적었습니다.

    >

    > 에러 메세지를 보면 위치가 잘못됐다는 말같은데 위치가 틀린가요?

    >

    > 어떻게 해야 되나요?

    >

    >



    .dpr 파일은 프로젝트 파일입니다.

    여기에 coding 해도 문젠 없지만

    좋지못한 습관입니다.

    따라서 다음과 같이 하세요



    version1.dpr 에

    ------------------

    library version1;



    uses

    Mylib in 'MyLib.pas';



    exports

    makestr;



    begin



    end.





    MyLib.Pas 에

    ------------------



    unit MyLib.pas



    interface



    uses

    Windows,

    ...

    DBGrids;





    function makestr() : string; overload; stdcall;





    {$R *.RES}



    var

    column : array of array[1..4] of string;



    implementation



    procedure token(index:integer; s:string);

    function search(flag:integer):Boolean;





    function makestr() : string;

    var

    ...

    begin

    ...

    end;



    procedure token(index:integer; s:string);

    var

    ...

    begin

    ...

    end;





    function search(flag:integer): Boolean;

    var

    ...

    begin

    ...

    end;





  • Profile
    김진호 2000.01.26 20:00
    안녕하세요?



    음 또 유효종씨가 답변을 해주셨군요



    감사합니다. 한편으로는 반갑기도 하군요.



    해주신대로 그대로 했더니



    [Error] mylib.pas(169): Declaration expected but end of file found



    라는 메세지가 나옵니다.



    순서는 file/new/unit를 하고 그 파일을 mylib로 저장을 한다음 해주신대로 코딩을 했는데



    이런 메세지가 나오네요...



    음 그래서 끝에 end. 가 빠져서 그런가 해서 end. 를 넣었더니



    [Error] mylib.pas(166): BEGIN expected but END found



    그래서 begin end.를 넣었더니



    [Error] mylib.pas(167): ';' expected but '.' found



    라고 나오네요



    제가 dll은 처음 만들어 보는 거라서요



    예제를 보면 그냥 dpr에서 만들어도 되던데 워낙 간단해서 그런가요?



    아뭏든 제가 또 뭘 잘못했나요?





    감사합니다..