2011-02-24 4 views
0

현재 내 코드 내의 경로는 하드 코드되어 있습니다. 사용자가 선택한 설치 경로에 따라 동적으로 만들고 싶습니다. 아래의 코드를 추가 한 버튼을 사용할 수 있습니다
Visual C++에서 TARGETDIR을 사용하는 방법은 무엇입니까?

 SHELLEXECUTEINFO info = {0}; 
    info.cbSize = sizeof(SHELLEXECUTEINFO); 
    info.fMask = SEE_MASK_NOCLOSEPROCESS; 
    info.lpFile = _T("C:\\PROGRA~1\\APPY\\IECapt.exe"); 
    info.lpParameters = full; 
    info.nShow = SW_HIDE; 

답변

2

TARGETDIR은 .EXE 파일이 연결된 디렉토리의 경로입니다. 컴파일시에만 사용할 수 있습니다. 설치 디렉토리를 가져오고 싶으므로 TARGETDIR은 유용하지 않습니다.

GetModuleFileName()은 .EXE가로드 된 경로를 제공합니다.

+0

나는 이것을 업 그레 이드 할 수 있었으면 좋겠지 만 표가 틀립니다. 이것은 정답입니다. –

+0

득표 수는 무엇입니까? – harper

+0

하루에 30 표 밖에 얻을 수 없으며, 위 또는 아래 투표 질문 및 답변에 사용할 수 있습니다. 나는 이미 오늘 내 모든 것을 이미 사용했기 때문에 당신의 대답에 대해 투표를 할 수는 없습니다. 나는 이것이 upvote를 떠나지 않고 올바른 해결책이라고 논평했다. –

0

이 단지 제안 ......와 OnButonClick() 함수에서 :

어떻게 여기에 내 코드 내부에 TARGETDIR을 사용할 수 있습니다 다른 코드와 함께 ..........

CFileDialog m_IDFile(TRUE); 
    m_IDFile1.m_ofn.lpstrInitialDir=L"C:\\PROGRA~1\\APPY\\"; 
    if(m_IDFile1.DoModal()==IDOK) 
    m_cFileName=m_IDFile1.GetPathName(); 
    info.lpFile = _T(m_cFileName); 
+0

Program Files 폴더에 하드 코딩 된 경로를 유지해야합니다. ** 그렇게하지 마세요 **. –

관련 문제