사용자가 지정한 위치에 파일을 저장하는 기능이 있습니다. GetSaveFileName()을 사용하여 다른 이름으로 저장 대화 상자를 표시합니다. 그런 다음 반환 된 경로를 사용하여 해당 위치로 파일을 씁니다. 사용자가 XP 컴퓨터에서 CD-RW 드라이브를 선택할 때 작동하지 않는 것으로 나타났습니다. 를 CD 버너 루트 폴더를 선택할 때GetSaveFileName() XP의 스테이징 영역을 굽는 CD의 경로를 반환하지 않습니다.
- GetSaveFileName (에 의해 반환되는 경로) 임시 준비 영역의 경로를 반환 (F :이 같은 과정은 Vista 및 Windows 나는 다음과 같은 관측을했습니다 7에서 제대로 작동합니다 : Win7/Vista에서 필자의 경우).
- XP에서는 CD 레코더 루트 폴더를 선택하면 F : \가 경로로 반환됩니다. 그러나 다른 이름으로 저장 대화 상자를 사용하여 하위 폴더를 만들고이 폴더에 파일을 저장하는 경우 (예 : F : \ 폴더) 경로는 임시 폴더의 경로입니다.
- XP에서 메모장과 같은 다른 응용 프로그램을 사용하면 F : \의 임시 폴더로 올바르게 리디렉션됩니다.
XP에서는 CD 버너의 루트 폴더에 저장할 때만 문제가 발생합니다. XP에서 메모장과 동일한 기능을 어떻게 수행하고 CreateFile()에 쓸 수있는 경로가 있으므로 임시 폴더로 다른 이름으로 저장을 할 수 있습니까?
'GetSaveFileName'을 사용하는 방법, 특히'OPENFILENAME'에서 사용하는 Flags를 어떻게 코드 예제로 게시 할 수 있습니까? 예를 들어'OFN_NOTESTFILECREATE' 플래그를 사용합니까? – Oleg
대략 다음과 같습니다. OPENFILENAME openFileName; ZeroMemory (& openFileName, sizeof (OPENFILENAME)); openFileName.lStructSize = sizeof (OPENFILENAME); openFileName.Flags = OFN_OVERWRITEPROMPT; openFileName.lpstrFilter = "Zip 파일 (* .zip)"; GetSaveFileName (& openFileName); – Ryand