흠... C++ Builder와 델파이 환경이 다를까요?
델파이에서는 ParamStr(0)으로 조회가 잘 되네요.
디버깅을 해보시면 좋을 것 같아요.
UnicodeString currentDir = "test" + ParamStr(0) + "hehe";
에 브레이크포인트 거시고 F7로 안으로 들어가보시면
아래와 같은 코드가 나옵니다.
if Index < ArgCount then
Result := string(PAnsiCharArray(ArgValues^)[Index])
else
Result := '';
ArgCount와 ArgValue는
procedure _StartExe(...
에서 호출 하니 _StartExe( 프로시저 안을 검사해 보시면 좋을 듯...
근데 음... 검사해도 답이 나올까요?
혹시 원인 찾으시면 답변 남겨 주세요^^
혹시 모르니 아래 함수도 한번 확인해 보세요~
uses
System.IOUtils;
TDirectory.GetCurrentDirectory
나린바라기 님이 쓰신 글 :
: 안녕하세요. C++ Builder XE3 사용자입니다.
:
: 이번에 윈도우 용과 Mac 용을 동시에 개발하려고 FireMonkey 프로그램을 개발하고 있는데요,
: 이전에 VCL 환경에서는 Application->ExeName 함수를 쓰면 현재 프로그램의 위치를 알 수 있어서 같은 폴더 내 리소스를 불러다 쓸 수 있었는데
: FireMonkey에는 ExeName이라는 함수가 없더군요
:
: 그래서 찾아보니 ParamStr(0)을 쓰면 된다고 해서 써보았습니다.
: 그런데 윈도우 환경에서는 정상적으로 경로를 가져오나, 맥에서 실행해 보니 아무런 string 값도 반환되지 않았습니다.
:
: 예를 들어
:
: UnicodeString currentDir = "test" + ParamStr(0) + "hehe";
: ShowMessage(currentDir);
:
: 위 코드를 실행하면 "testhehe" 라고만 뜹니다..
:
: 혹시 ParamStr(0) 말고 현재 실행중인 프로그램의 경로를 알 수 있는 방법이 있을까요?
: 아니면 따로 프로젝트 설정 등이 필요한 것인지 궁금합니다. 혹시 아시는 분이나 의심가는 것이 생각나시는 분은 답변 부탁드리겠습니다..
:
: 감사합니다.