Skip to content
This repository has been archived by the owner on Jul 19, 2024. It is now read-only.

WinRT Approaches comparison

EvgenyAgafonchikov edited this page Jun 5, 2015 · 1 revision
Approach Advantages Disadvantages
Try to fix 0xC0000005 SEH exception “Clean” approach as should fix the issue w/o workarounds No exact estimate as it is difficult to find root causes of access violation
Doesn’t work for ARM
Create fstream wrapper All the code placed into one place (custom header file) Requires overloading of fstream-related classes and functions
Isolates platform-specific code Requires subsequent fopen function overloading to be used for ARM + possible updating of initially implemented fstream wrapper to work from container
Requires placing of files to location available from app container for ARM (e.g. Documents Library) and setting of corresponding permissions to copy files to local app’s folder
Rewrite code to read data from Documents folder w/ async read/write functions Allows to get files directly from Documents library (w/o copying to local) Requires wrapping of the existing file system calls
Works for ARM as well
Rewrite code to read data from Documents folder w/o async read/write functions Allows to use default ifstream/fopen after little data path modification Requires copying of files to local app’s folders using WinRT-specifig
Works for ARM as well Requires file system calls wrapper at least for files copying
Put required files with test apps as content Requires no modification in source excluding data path Requires to copy all files (over 400 Mb) with every test app or creating of folders list for each test app and keeping of it up to date
There is tested working prototype Causes writing of extra CMake platform-specific code (more code in case of filtering by folders)
Works for ARM as well Considerably increases size of executables and deployment time
Exclude failed tests from WinRT build and document this Minimizes effort Partial solution
Requires removing some extra tests as we can remove whole files only during CMake generation
Doesn’t work for ARM
Requires subsequent maintenance to keep excluded list up to date
Clone this wiki locally