|
프로그램이 실행될 때 현재 Path가 어디냐에 따라서 에러가 나고 안나고 합니다.
현재 C:\windows\에서 c:\exam.exe 를 절대경로로 실행하면, 현재 path는 windows이지만
실행파일은 root의 exam.exe가 실행될 수 있죠. 이런 경우 아래 코드로 작성해 두시면, bmp파일을
windows에서 찾아보게 되는 경우가 발생하겠지요.
: String sFname=ExtractFilePath(ParamStr(0))+"config.bmp";
: if(FileExists(sFname))
: {
: sBtn->Glyph->LoadFromFile("config.bmp");
: }
sBtn->Glyph->LoadFromFile(sFname); 으로 바꾸시면 해결될 것으로 보입니다.
sFname에 이미 실행파일의 패스와 필요한 파일명인 config.bmp라는 이름도 다 들어가 있는데...
굳이 다시 "config.bmp"라는 string을 줘서 파일을 로드할 필요는 없겠지요.
장성호 님이 쓰신 글 :
: 윈도우 레지스터리의 시작프로그램에 프로그램을 등록해 뒀습니다.
:
: 프로그램이 시작될때 같은폴더에 bmp 이미지 파일을 load해서
: BitBtn의 아이콘 이미지로 씁니다.
:
: 파일의 존재 여부까지 확인하고 bmp파일을 Load하는데 에러가 나네요
: "cannot open file ....";
:
: 부팅완료후 실행하면 전혀 문제가 없는데...
:
:
: @ 코드의 일부분 ...
:
: TBitBtn *sBtn;
: //--------------------------------------------------------
: String sFname=ExtractFilePath(ParamStr(0))+"config.bmp";
: if(FileExists(sFname))
: {
: sBtn->Glyph->LoadFromFile("config.bmp");
: }
:
: @Imagefile을 resource로 만들어서 실행파일에 묶이면 문제가 해결되겠지만...
: 위와같은 에러가 나는 원인이 궁금합니다.
|