Q&A

  • DLL 경로를 상대경로로 했는데...
안녕하십니까?



프로젝트파일이 있는 폴더 하위에 DLL을 넣고



DLL을 쓰는 유닛에서 상대경로로 아래와 같이 넣었습니다.



const

aaaLib = './lib/aaaa.dll'





function udf_usefullFunction(aa : string):boolean; cdecl; external aaalib;



그런데 실행하면 DLL을 찾을수 없다고 나옵니다.



뭐가 문제인가요?



읽어 주셔서 감사합니다.



1  COMMENTS
  • Profile
    김영로 2000.12.21 00:56
    상대경로가 현재폴더에서 lib/ 폴더 아래에 있는 aaaa.dll 을 지정했는데

    현재 폴더아래에 lib 폴더가 있고 그 폴더안에 aaaa.dll 이 있어야만 되겠죠..

    그러면 프로그램이 시작될때 현재폴더를 원하는 폴더로 바꿔주면 되겠죠..

    프로그램의 메인폼의 OnCreate 이벤트에서 ChDir 함수로 현재폴더를 변경해주거나..

    프로그램의 프로젝트파일에서 폼이 생성되기 전에 ChDir 해서 현재폴더로 변경해주면

    됩니다.. 프로젝트파일보면 폼생성할 때 Application.createForm(TForm1, Form1);

    이런 부분있죠? 이런 것들 맨 앞에다가 ChDir('원하는 폴더') 로 해주면 됩니다.

    아니면 완전한 절대경로로 지정을 하시던지..

    아니면 aaaLib = 'aaaa.dll' 로만 지정을 하고 그 라이브러리를

    윈도우즈 폴더나 윈도우즈 폴더안의 시스템폴더에 넣으면 그냥 윈도우가 알아서

    찾아서 해줍니다.





    한성근 wrote:

    > 안녕하십니까?

    >

    > 프로젝트파일이 있는 폴더 하위에 DLL을 넣고

    >

    > DLL을 쓰는 유닛에서 상대경로로 아래와 같이 넣었습니다.

    >

    > const

    > aaaLib = './lib/aaaa.dll'

    >

    >

    > function udf_usefullFunction(aa : string):boolean; cdecl; external aaalib;

    >

    > 그런데 실행하면 DLL을 찾을수 없다고 나옵니다.

    >

    > 뭐가 문제인가요?

    >

    > 읽어 주셔서 감사합니다.

    >