1

파일을 설치 대상 디렉터리로 복사하려고합니다.C++에서 프로젝트 설치 사용자 지정 작업 "[TARGETDIR]"

나는 이것을 사용하고 있습니다 :

TCHAR destPath[ MAX_PATH ] = &L"[TARGETDIR]"; 
wcscat_s(destPath, L"[email protected]\\Capture.png"); 
CopyFile(L"C:\\Users\\waldek\\Desktop\\Capture.png", destPath, 0); 

내가 이것을 사용하는 경우 :

이 destPath가 평가해야하는지 기본적으로 어떤 작품
CopyFile(L"C:\\Users\\waldek\\Desktop\\Capture.png", L"C:\\Program Files (x86)\\Microsoft\\Setup1\\[email protected]\\Capture.png", 0); 

, 나는 그것이 내가 PMSIHANDLE를 사용할 때 평가하는 것을 볼 수있다 , 올바른 경로를 알려줍니다 ...

"[TARGETDIR]"평가를 위해 CopyFile을 강제 실행하는 방법; 부동산 CustomactionData에서 설치 사용자 지정 작업에

답변

0
WCHAR vbuff [MAX_PATH] = {0}; 

DWORD vlen = MAX_PATH; 
UINT gp = MsiGetPropertyW(hInstall, L"CustomActionData", vbuff, &vlen); 

, 난 그냥 넣어 [TARGETDIR]

vbuff은 대상 디렉토리

물론 연결 예상대로 실행 FileCopy ...

입니다

이것은 나를 위해 일했다. .. 그러나 나는 아직도 내가 왜 게시했는지에 관해 알기를 바란다. 가장 이상한 것은 PMSIHANDLE이 올바른 길을 썼다는 것이다. 그러나 나는 "번역"이라고 생각한다. 그것을 지나가는 단계가 빠졌습니다. FileCopy 함수에서 ...

나는 이것에 대한 이론을 놓치고있다.

0

사용자 지정 작업의 일부인 것으로 가정하면 MsiFormatRecord를 사용할 수 있습니다. 오류 처리를 생략하면 다음과 같이 보입니다.

PMSIHANDLE hRec = MsiCreateRecord(1); 
MsiRecordSetString(hRec, 0, _T("[TARGETDIR][email protected]")); 

TCHAR szPath[MAX_PATH] = {0}; 
DWORD cchPath = MAX_PATH; 
MsiFormatRecord(hInstall, hRec, szPath, &cchPath); 
관련 문제