July 22 2017 - Native C++ on UWP

The bottle neck of porting Weather Tpying (WPF) to UWP is native C++ DLL. It is not difficult to port C++ code to C# but it will be convenient if I can use native code, it will be good.

At first, I tried making native DLL and called it from UWP by P/Invoke, it succeeded. It worked in Windows IoT, too. It seems that without prohibited API, it works.

After that, I tried building it as Windows Store app and validated with Windows App Certification Kit (WACK). Then I got “vccorlib140.dll is not supported for this application type” and Windows Security Features Test failed. In the error, memset and memcpy, that seems no problem to use, were shown. It
seems that the native DLL is linking desktop app library.

I found “Consume Windows Runtime Extension” in Native DLL project property. I enabled it seeing “Using C++/CX in Desktop apps” but it doesn’t change.

At last, I found official help “How to: Use Existing C++ Code in a Universal Windows Platform App” and changed project file directly and changed pre-complie header name addition to C++/CX settings above. After that, WACK succeeded.

When I saw the generated DLL by Dependancy Walker, it linked to “VCRUNTIME140_APP.DLL” and “MSVCP140_APP.DLL” instead of “VCRUNTIME140.DLL” and “MSVCP140.DLL. ” APP-DLL may be for UWP.

Leave a Comment