PathCombine 함수에 어려움이 있습니다. SHFileOperation()과 함께 제대로 작동하지 않는 것 같습니다. 가 위처럼 내가 그것을 가지고PathCombine 함수가 올바르게 작동하지 않습니다.
//beginning of method
TCHAR* root = new TCHAR[MAX_PATH];
root = L"C:\\Users\\jhow\\Desktop\\\0";
//later on in the method
TCHAR* t1Dir = new TCHAR[MAX_PATH]; //root
TCHAR* t2Dir = new TCHAR[MAX_PATH]; //temp
PathCombine(t1Dir,root,L"Folder1\\%REPLACE_THIS%\\\0");
PathCombine(t2Dir,root,L"Folder1\\temp\0");
sf.pFrom = t1Dir;
//sf.pFrom = L"C:\\Users\\jhow\\Desktop\\Folder1\\%REPLACE_THIS%";
sf.pTo = temporaryDir;
//Copy files
int n = SHFileOperation(&sf);
이 방법은 sf.pTo을 볼 수 있지만, 어떤 이유로 그것도 서로 다른 조합으로 주위를 재생 후 sf.pFrom를 (참조하지 않는 다음과 같이 내 코드는 \ 및 경로 이름 끝에 \ 0). n은 2가됩니다. 이것은 파일을 찾을 수 없다는 것을 의미한다고 생각합니다.하지만 예를 들어, 내가 주석을 쓸 때.
sf.pFrom = t1Dir;
과로 교체 :
sf.pFrom = L"C:\\Users\\jhow\\Desktop\\Folder1\\%REPLACE_THIS%";
SHFileOperation는()는 0을 반환하고 나는 모든 파일을 디렉토리에 복사하는 것을 볼 수있다 ... 작동합니다. 나는 그들이 변수를 디버깅하고 마우스를 가져갈 때조차도 똑같은 문자열로 보일 때 이상한 것을 발견합니다 ... 왜 이런 일이 일어나는 지 알고 있습니다. 구문이나 논리에 이상이 있습니까? 나는 그것을 보지 않기 때문에. Visual Studio 2008을 사용하고 있습니다. 시간 내 주셔서 대단히 감사합니다.
우선입니까? ''... ''는 컴파일러에게 그렇게하도록 지시하므로'\ 0'을 직접 추가함으로써 이중 종료 널 문자열로 끝납니다. –