MS 테크데이즈 2015에서 발표했던 슬라이드 공유합니다. (C++로 UWP앱 개발하기)

강연영상 MS Techdays 2015

ch9영상
https://channel9.msdn.com/Events/TechDays/TDK2015/T4-6

발표자료

 

소스코드 공유에 대해서
많은 분들이 요청하신 D3DVideoPlayer소스를 공유하였습니다.
버그 및 결함이 틀림없이 존재할 것입니다. 이에 대해서 저는 아무 책임도 지지 않습니다.
소스코드는 MIT라이선스를 적용받습니다.

https://github.com/megayuchi/Windows-UWP/


MS 테크데이즈 2015에서 발표했던 슬라이드 공유합니다. (C++로 UWP앱 개발하기)”에 대한 답글 9개

  1. 안녕하세요 테크데이즈에서 강의를 들었던 학생입니다.
    소스를 좀 보고 공부를 해볼려고 하는데요.
    괜찮으시다면 소스 공유좀 부탁드립니다.

    좋아요

  2. 안녕하세요 인터넷 검색중 찾아오게 되었는데 궁금한 점이 있어서 질문 드립니다.
    UWP 앱으로 C++ 파일 Read Write 를 하려고 하는데 win32 fopen_s 함수등은 권한 실패로 되지 않던데..
    워낙 초보라서 strageFile? 을 쓰라던데 함수도 없는것 같고 막막합니다.
    가능하시면 도움말씀 부탁드립니다.

    좋아요

    1. https://docs.com/youyeong-cheon/1000/c-directx-windows-universal-app
      여기서 39페이지를 읽어보시기 바랍니다.
      fopen은 읽기전용으로는 앱 하위 폴더와 isolated storeage를 억세스할 수 있습니다.
      쓰기로 열 경우 isolated storage만 억세스할 수 있습니다.
      그래서 FilePicker를 사용하게 됩니다.
      아무래도 댓글로는 좀 설명을 길게 하기 어렵네요.일단 문서 한번 읽어보시고 다시 한번 질문을 해주시면 감사하겠습니다.

      좋아요

      1. 감사합니다. 확인하였습니다.
        FilePicker에 대한 내용 검색과 https://code.msdn.microsoft.com/windowsapps/File-picker-sample-9f294cba 이곳에서 C++ 예제도 받아보았는데 아직 무슨 내용인지 파악이 안되고 있습니다.
        FilePicker를 사용한 파일 읽기 쓰기 예제코드가 있으시면 혹시 보여주실수있을까요?
        공부하는 수준이라 라즈베리파이2에 Windows10 IoT 설치 후 몇가지 예제 프로젝트를 만들어보다가
        단순히 aaa.txt 파일을 만들어 저장하고 내용 읽어보고 하려는데 잘 안되어 답답하네요.

        문서내용을 참고하고 라즈베리파이2 Windows10 IoT 내부 폴더를 확인하였는데 해당 폴더 경로는 존재하지 않고..
        UWP 프로젝트가 아닌 IoT Win32 Console 프로젝트로 fopne_s 함수를 사용하여 만들어서 배포해보니 파일 저장 읽기가 잘 되었습니다. 하지만 Win32 프로젝트로 생성된 exe파일은 UWP 배포 후 시작프로그램 APP로 등록이 되지 않았고 구글링하여 시작폴더에 복사해서 넣어도 마찬가지였습니다. 그리하여 다시 UWP로 돌아와서 system 함수로 UWP 프로젝트에서 Win32 프로젝트 빌드파일 exe를 실행시키도록 해봤는데 이 방법도 역시 불가능했습니다..

        간단하다고 생각했던 파일입출력이 잘되지 않아 잠도 잘 못자고 적는 글이라 두서가 너무 없네요.. 죄송합니다.

        요약하면 이렇습니다.

        1. 알려주신 주소에 경로가 라즈베리파이2 Windows IoT 내부에 존재하지 않습니다.
        2. FilePicker 에 대한 내용에 대한 정보가 국한되어 초보의 입장에서 어떻게 써야 하는지 감이 오지 않습니다.
        3. Win32 프로젝트 파일을 시작프로그램으로 넣을 수 있다면 일반 파일 입출력이 잘 되니 그렇게 해보고 싶습니다.
        4. UWP 프로젝트에서 Win32 프로젝트 빌드 파일(exe)를 실행할 수 있다면 이 방법도 무방할 것 같습니다.

        도움주셔서 감사합니다.

        좋아요

      2. 일단 git에 소스코드를 올렸습니다.

        https://github.com/megayuchi/Windows-UWP

        FileOpenUWP프로젝트 소스를 참고해주세요.

        제가 올린 소스는 Windows 10 Desktop 과 Windows 10 Moblie(phone)에서 작동합니다.
        일단 UWP의 100%동작을 보장하는것은 Windows 10 Desktop과 Windows 10 Moblie입니다. 참고해주세요.

        UWP는 완전한 샌드박스 시스템이기 때문에 파일 억세스 권한에 제약이 있습니다.
        디바이스의 임의의 폴더와 파일에 억세스하기 위해서는 FileOpenPicker,FolderOpenPicker를 사용해야합니다. 즉 사용자에게 명시적으로 이 파일에 접근하겠다는걸을 확인받아야합니다.
        win32에선 그런 제한이 없습니다. 당연히 아무데나 억세스할 수 있습니다.

        Windows IoT Core에 제가 예전 발표자료에 적어놓은 경로가 존재하지 않는지는 확인해보지 않았습니다. 일단 해당 경로가 hidden속성이라 hidden속성을 꺼야 보일텐데 IoT에서 그게 가능할지 모르겠습니다. 그리고 참고로 Windows IoT Coreㅇ서는 FileOpenPicker가 무조건 false를 리턴합니다. 100%호환되지 않는 API중 하나입니다.

        Windows IoT Core에서 GUI만 사용하지 않으면 win32 어플리케이션은 잘 작동합니다. 시작할때부터 win32어플리케이션을 실행하거나 서비스로 실행할 방법이 있을텐데 찾아보지 않았습니다.

        좋아요

      3. 말 그대로 FileOpenPicker는 사용자에게 파일을 선택할수 있도록 하는 것이네요.
        그냥 프로그램이 실행되면 자동으로 특정 경로의 파일을 읽거나 쓰는데도 가능한 것인가요?

        좋아요

      4. 무슨 말씀이신지는 알거 같은데 유감스럽게도 생각하신 용도로는 사용하지 못합니다. 자동으로 파일을 셀렉트하게 할순 없습니다. 이 UI의 주된 목적은 ‘사용자에게 파일 접근을 명시적으로 허가받는다’라고 보시면 됩니다. 자동으로 파일을 억세스 해야하는 경우는 해당 파일을 앱의 하위 폴더에 넣어두거나 write권한이 필요할 경우 document등의 폴더 억세스 권한을 주고 그쪽에 파일을 두거나 isolated storage를 사용하셔야 합니다.

        좋아요

답글 남기기

댓글을 게시하려면 다음의 방법 중 하나를 사용하여 로그인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

%s에 연결하는 중