문제

모든 사용자에게 동일한 프로그램 데이터 파일을 저장할 수있는 올바른 장소는 무엇입니까? MS Windows XP의 동등한 위치는 무엇입니까? 일반 사용자가 설치 한 후 C : ProgramData가 쓸 수 없음을 읽었습니다. 그게 사실인가요? 플랫폼 SDK를 사용하여 프로그래밍 방식으로 해당 디렉토리를 검색하려면 어떻게해야합니까?

도움이 되었습니까?

해결책

CSIDL_COMMON_APPDATA의 CSIDL이있는 SHGETFOLDERPATH ().

더 읽어보십시오 http://msdn.microsoft.com/en-us/library/bb762181(vs.85).aspx

배치 파일의 경로가 필요한 경우 % allusersprofile % 환경 변수를 사용할 수도 있습니다.

다른 팁

여기에는 다양한 옵션에 대한 훌륭한 요약이 있습니다. http://blogs.msdn.com/cjacks/archive/2008/02/05/where-should-i-write-program-data-instead-of-program-files.aspx

프로그램 파일 대신 프로그램 데이터를 어디서 작성해야합니까?

일반적인 응용 프로그램 코드 업데이트는 다음과 같습니다. "내 응용 프로그램은 프로그램 파일에 파일을 작성하는 데 사용되었습니다. 다른 사람과 마찬가지로 그것을 넣을 수있는 좋은 장소처럼 느껴졌습니다. 이미 응용 프로그램 이름이 있었으며 사용자가 관리자 였기 때문에 It. 잘 작동했습니다. 그러나 이제는 UAC를 사용하여 관리자도 대부분 표준 사용자와 유사한 권한으로 실행되기 때문에 이것이 한 번 생각했던 것만 큼 좋은 곳이 아닐 수도 있습니다. ? "

실제로 SHGetFolderPath 더 이상 사용되지 않습니다.

SHGetKnownFolderPath 대신 사용해야합니다.

당신이 사용할 수있는:

CString strPath;
::SHGetSpecialFolderPath(NULL, strPath.GetBuffer(1024), CSIDL_COMMON_APPDATA, FALSE);

보다 이 특정 질문에 대한 Raymond Chen의 기사.

요컨대, 당신은 a를 요구합니다 보안 구멍.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top